Remove not needed __builtin_expect due to malloc predictor.
[official-gcc.git] / gcc / config.gcc
blobf777a28e3ad6a7a059bd9e9ea8fc146db02daa03
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"
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"
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 epiphany-*-elf | epiphany-*-rtems*)
1282         tm_file="${tm_file} dbxelf.h elfos.h"
1283         tmake_file="${tmake_file} epiphany/t-epiphany"
1284         case ${target} in
1285         epiphany-*-rtems*)
1286           tm_file="${tm_file} rtems.h epiphany/rtems.h newlib-stdint.h"
1287           ;;
1288         *)
1289           tm_file="${tm_file} newlib-stdint.h"
1290           ;;
1291         esac
1292         extra_options="${extra_options} fused-madd.opt"
1293         extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
1294         tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1295         extra_headers="epiphany_intrinsics.h"
1296         ;;
1297 fr30-*-elf)
1298         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1299         ;;
1300 frv-*-elf)
1301         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1302         tmake_file=frv/t-frv
1303         ;;
1304 frv-*-*linux*)
1305         tm_file="dbxelf.h elfos.h ${tm_file} \
1306                  gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1307         tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1308         ;;
1309 ft32-*-elf)
1310         gas=yes
1311         gnu_ld=yes
1312         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1313         tmake_file="${tmake_file} ft32/t-ft32"
1314         ;;
1315 moxie-*-elf)
1316         gas=yes
1317         gnu_ld=yes
1318         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1319         tmake_file="${tmake_file} moxie/t-moxie"
1320         ;;
1321 moxie-*-uclinux*)
1322         gas=yes
1323         gnu_ld=yes
1324         tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1325         tmake_file="${tmake_file} moxie/t-moxie"
1326         ;;
1327 moxie-*-rtems*)
1328         tmake_file="${tmake_file} moxie/t-moxie"
1329         tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1330         ;;
1331 moxie-*-moxiebox*)
1332         gas=yes
1333         gnu_ld=yes
1334         tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1335         tmake_file="${tmake_file} moxie/t-moxiebox"
1336         ;;
1337 h8300-*-elf*)
1338         tmake_file="h8300/t-h8300"
1339         tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1340         ;;
1341 h8300-*-linux*)
1342         tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1343         tm_file="h8300/h8300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1344         ;;
1345 hppa*64*-*-linux*)
1346         target_cpu_default="MASK_PA_11|MASK_PA_20"
1347         tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1348                  glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1349                  pa/pa64-linux.h"
1350         gas=yes gnu_ld=yes
1351         ;;
1352 hppa*-*-linux*)
1353         target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
1354         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1355                  pa/pa32-regs.h pa/pa32-linux.h"
1356         tmake_file="${tmake_file} pa/t-linux"
1357         ;;
1358 hppa*-*-openbsd*)
1359         target_cpu_default="MASK_PA_11"
1360         tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1361                  pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1362         extra_options="${extra_options} openbsd.opt"
1363         gas=yes
1364         gnu_ld=yes
1365         ;;
1366 hppa[12]*-*-hpux10*)
1367         case ${target} in
1368         hppa1.1-*-* | hppa2*-*-*)
1369                 target_cpu_default="MASK_PA_11"
1370                 ;;
1371         esac
1372         tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1373                  pa/pa-hpux.h pa/pa-hpux10.h"
1374         extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1375         case ${target} in
1376         *-*-hpux10.[1-9]*)
1377                 tm_file="${tm_file} pa/pa-hpux1010.h"
1378                 extra_options="${extra_options} pa/pa-hpux1010.opt"
1379                 ;;
1380         esac
1381         use_gcc_stdint=provide
1382         tm_file="${tm_file} hpux-stdint.h"
1383         tmake_file="t-slibgcc"
1384         case ${enable_threads} in
1385           "")
1386             if test x$have_pthread_h = xyes ; then
1387               tmake_file="${tmake_file} pa/t-dce-thr"
1388             fi
1389             ;;
1390           yes | dce)
1391             tmake_file="${tmake_file} pa/t-dce-thr"
1392             ;;
1393         esac
1394         use_collect2=yes
1395         gas=yes
1396         if test "x$with_dwarf2" != x; then
1397                 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1398                 dwarf2=no
1399         fi
1400         ;;
1401 hppa*64*-*-hpux11*)
1402         target_cpu_default="MASK_PA_11|MASK_PA_20"
1403         if test x$gnu_ld = xyes
1404         then
1405                 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1406         fi
1407         tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1408                  pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1409                  pa/pa-hpux11.h"
1410         case ${target} in
1411         *-*-hpux11.[12]*)
1412                 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1413                 extra_options="${extra_options} pa/pa-hpux1111.opt"
1414                 ;;
1415         *-*-hpux11.[3-9]*)
1416                 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1417                 extra_options="${extra_options} pa/pa-hpux1131.opt"
1418                 ;;
1419         *)
1420                 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1421                 ;;
1422         esac
1423         extra_options="${extra_options} pa/pa-hpux.opt \
1424                        pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1425         tmake_file="t-slibgcc"
1426         case x${enable_threads} in
1427         x | xyes | xposix )
1428                 thread_file=posix
1429                 ;;
1430         esac
1431         gas=yes
1432         case ${target} in
1433           *-*-hpux11.[01]*)
1434                 use_gcc_stdint=provide
1435                 tm_file="${tm_file} hpux-stdint.h"
1436                 ;;
1437           *-*-hpux11.[23]*)
1438                 use_gcc_stdint=wrap
1439                 tm_file="${tm_file} hpux-stdint.h"
1440                 ;;
1441         esac
1442         ;;
1443 hppa[12]*-*-hpux11*)
1444         case ${target} in
1445         hppa1.1-*-* | hppa2*-*-*)
1446                 target_cpu_default="MASK_PA_11"
1447                 ;;
1448         esac
1449         tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1450                  pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1451         extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1452                        hpux11.opt"
1453         case ${target} in
1454         *-*-hpux11.[12]*)
1455                 tm_file="${tm_file} pa/pa-hpux1111.h"
1456                 extra_options="${extra_options} pa/pa-hpux1111.opt"
1457                 ;;
1458         *-*-hpux11.[3-9]*)
1459                 tm_file="${tm_file} pa/pa-hpux1131.h"
1460                 extra_options="${extra_options} pa/pa-hpux1131.opt"
1461                 ;;
1462         esac
1463         tmake_file="t-slibgcc"
1464         case x${enable_threads} in
1465         x | xyes | xposix )
1466                 thread_file=posix
1467                 ;;
1468         esac
1469         use_collect2=yes
1470         gas=yes
1471         case ${target} in
1472           *-*-hpux11.[01]*)
1473                 use_gcc_stdint=provide
1474                 tm_file="${tm_file} hpux-stdint.h"
1475                 ;;
1476           *-*-hpux11.[23]*)
1477                 use_gcc_stdint=wrap
1478                 tm_file="${tm_file} hpux-stdint.h"
1479                 ;;
1480         esac
1481         if test "x$with_dwarf2" != x; then
1482                 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1483                 dwarf2=no
1484         fi
1485         ;;
1486 i[34567]86-*-darwin*)
1487         need_64bit_isa=yes
1488         # Baseline choice for a machine that allows m64 support.
1489         with_cpu=${with_cpu:-core2}
1490         tmake_file="${tmake_file} t-slibgcc"
1491         ;;
1492 x86_64-*-darwin*)
1493         with_cpu=${with_cpu:-core2}
1494         tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
1495         tm_file="${tm_file} ${cpu_type}/darwin64.h"
1496         ;;
1497 i[34567]86-*-elfiamcu)
1498         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
1499         ;;
1500 i[34567]86-*-elf*)
1501         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1502         ;;
1503 x86_64-*-elf*)
1504         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1505         ;;
1506 x86_64-*-rtems*)
1507         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"
1508         ;;
1509 i[34567]86-*-rdos*)
1510     tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1511     ;;
1512 x86_64-*-rdos*)
1513     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"
1514     tmake_file="i386/t-i386elf t-svr4"
1515     ;;
1516 i[34567]86-*-dragonfly*)
1517         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1518         tmake_file="${tmake_file} i386/t-crtstuff"
1519         ;;
1520 x86_64-*-dragonfly*)
1521         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"
1522         tmake_file="${tmake_file} i386/t-crtstuff"
1523         ;;
1524 i[34567]86-*-freebsd*)
1525         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1526         ;;
1527 x86_64-*-freebsd*)
1528         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"
1529         ;;
1530 i[34567]86-*-netbsdelf*)
1531         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
1532         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1533         ;;
1534 x86_64-*-netbsd*)
1535         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
1536         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1537         ;;
1538 i[34567]86-*-openbsd*)
1539         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1540         tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1541         extra_options="${extra_options} openbsd.opt"
1542         gas=yes
1543         gnu_ld=yes
1544         ;;
1545 x86_64-*-openbsd*)
1546         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1547         tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1548         extra_options="${extra_options} openbsd.opt"
1549         gas=yes
1550         gnu_ld=yes
1551         ;;
1552 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1553                         # Intel 80386's running GNU/*
1554                         # with ELF format using glibc 2
1555         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1556         case ${target} in
1557         i[34567]86-*-linux*)
1558                 tm_file="${tm_file} linux.h linux-android.h"
1559                 extra_options="${extra_options} linux-android.opt"
1560                 if test x$enable_targets = xall; then
1561                         tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1562                         tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1563                         tmake_file="${tmake_file} i386/t-linux64"
1564                         x86_multilibs="${with_multilib_list}"
1565                         if test "$x86_multilibs" = "default"; then
1566                                 x86_multilibs="m64,m32"
1567                         fi
1568                         x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1569                         for x86_multilib in ${x86_multilibs}; do
1570                                 case ${x86_multilib} in
1571                                 m32 | m64 | mx32)
1572                                         TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1573                                         ;;
1574                                 *)
1575                                         echo "--with-multilib-list=${x86_with_multilib} not supported."
1576                                         exit 1
1577                                 esac
1578                         done
1579                         TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1580                         need_64bit_isa=yes
1581                         if test x$with_cpu = x; then
1582                                 if test x$with_cpu_64 = x; then
1583                                         with_cpu_64=generic
1584                                 fi
1585                         else
1586                                 case " $x86_cpus $x86_archs $x86_64_archs " in
1587                                 *" $with_cpu "*)
1588                                         ;;
1589                                 *)
1590                                         echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1591                                         echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1592                                         exit 1
1593                                         ;;
1594                                 esac
1595                         fi
1596                 else
1597                         tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1598                 fi
1599                 ;;
1600         i[34567]86-*-kfreebsd*-gnu)
1601                 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1602                 ;;
1603         i[34567]86-*-kopensolaris*-gnu)
1604                 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1605                 ;;
1606         i[34567]86-*-gnu*)
1607                 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1608                 ;;
1609         esac
1610         ;;
1611 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
1612         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1613                  i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1614         case ${target} in
1615         x86_64-*-linux*)
1616                 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1617                 extra_options="${extra_options} linux-android.opt"
1618                 ;;
1619         x86_64-*-kfreebsd*-gnu)
1620                 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1621                 ;;
1622         esac
1623         tmake_file="${tmake_file} i386/t-linux64"
1624         x86_multilibs="${with_multilib_list}"
1625         if test "$x86_multilibs" = "default"; then
1626                 case ${with_abi} in
1627                 x32 | mx32)
1628                         x86_multilibs="mx32"
1629                         ;;
1630                 *)
1631                         x86_multilibs="m64,m32"
1632                         ;;
1633                 esac
1634         fi
1635         x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1636         for x86_multilib in ${x86_multilibs}; do
1637                 case ${x86_multilib} in
1638                 m32 | m64 | mx32)
1639                         TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1640                         ;;
1641                 *)
1642                         echo "--with-multilib-list=${x86_with_multilib} not supported."
1643                         exit 1
1644                 esac
1645         done
1646         TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1647         ;;
1648 i[34567]86-pc-msdosdjgpp*)
1649         xm_file=i386/xm-djgpp.h
1650         tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
1651         native_system_header_dir=/dev/env/DJDIR/include
1652         extra_options="${extra_options} i386/djgpp.opt"
1653         gnu_ld=yes
1654         gas=yes
1655         use_gcc_stdint=wrap
1656         ;;
1657 i[34567]86-*-lynxos*)
1658         xm_defines=POSIX
1659         tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
1660         tmake_file="${tmake_file} t-lynx"
1661         extra_options="${extra_options} lynx.opt"
1662         thread_file=lynx
1663         gnu_ld=yes
1664         gas=yes
1665         ;;
1666 i[34567]86-*-nto-qnx*)
1667         tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
1668         extra_options="${extra_options} i386/nto.opt"
1669         gnu_ld=yes
1670         gas=yes
1671         ;;
1672 i[34567]86-*-rtems*)
1673         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"
1674         tmake_file="${tmake_file} i386/t-rtems"
1675         ;;
1676 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
1677         # Set default arch_32 to pentium4, tune_32 to generic like the other
1678         # i386 targets, although config.guess defaults to i386-pc-solaris2*.
1679         with_arch_32=${with_arch_32:-pentium4}
1680         with_tune_32=${with_tune_32:-generic}
1681         tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
1682         tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1683         tmake_file="$tmake_file i386/t-sol2"
1684         need_64bit_isa=yes
1685         if test x$with_cpu = x; then
1686                 if test x$with_cpu_64 = x; then
1687                         with_cpu_64=generic
1688                 fi
1689         else
1690                 case " $x86_cpus $x86_archs $x86_64_archs " in
1691                 *" $with_cpu "*)
1692                         ;;
1693                 *)
1694                         echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1695                         echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1696                         exit 1
1697                         ;;
1698                 esac
1699         fi
1700         ;;
1701 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae|i[4567]86-wrs-vxworks7|x86_64-wrs-vxworks7)
1702         tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
1703         case ${target} in
1704           x86_64-*)
1705             need_64bit_isa=yes
1706             tm_file="${tm_file} i386/x86-64.h"
1707             ;;
1708         esac
1709         tm_file="${tm_file} vx-common.h"
1710         case ${target} in
1711           *-vxworksae*)
1712             tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
1713             tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
1714             ;;
1715           *)
1716             tm_file="${tm_file} vxworks.h i386/vxworks.h"
1717             tmake_file="${tmake_file} i386/t-vxworks"
1718             ;;
1719         esac
1720         ;;
1721 i[34567]86-*-cygwin*)
1722         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"
1723         xm_file=i386/xm-cygwin.h
1724         tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
1725         target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1726         extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1727         extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1728         c_target_objs="${c_target_objs} msformat-c.o"
1729         cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1730         if test x$enable_threads = xyes; then
1731                 thread_file='posix'
1732         fi
1733         default_use_cxa_atexit=yes
1734         use_gcc_stdint=wrap
1735         ;;
1736 x86_64-*-cygwin*)
1737         need_64bit_isa=yes
1738         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"
1739         xm_file=i386/xm-cygwin.h
1740         tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
1741         target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1742         extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1743         extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1744         c_target_objs="${c_target_objs} msformat-c.o"
1745         cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1746         if test x$enable_threads = xyes; then
1747                 thread_file='posix'
1748         fi
1749         default_use_cxa_atexit=yes
1750         use_gcc_stdint=wrap
1751         tm_defines="${tm_defines} TARGET_CYGWIN64=1"
1752         ;;
1753 i[34567]86-*-mingw* | x86_64-*-mingw*)
1754         tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
1755         xm_file=i386/xm-mingw32.h
1756         c_target_objs="${c_target_objs} winnt-c.o"
1757         cxx_target_objs="${cxx_target_objs} winnt-c.o"
1758         target_has_targetcm="yes"
1759         case ${target} in
1760                 x86_64-*-* | *-w64-*)
1761                         need_64bit_isa=yes
1762                         ;;
1763                 *)
1764                         ;;
1765         esac
1766         if test x$enable_threads = xposix ; then
1767                 tm_file="${tm_file} i386/mingw-pthread.h"
1768         fi
1769         tm_file="${tm_file} i386/mingw32.h"
1770         # This makes the logic if mingw's or the w64 feature set has to be used
1771         case ${target} in
1772                 *-w64-*)
1773                         user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
1774                         user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
1775                         tm_file="${tm_file} i386/mingw-w64.h"
1776                         if test x$enable_targets = xall; then
1777                                 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1778                                 if test x$with_cpu = x; then
1779                                         if test x$with_cpu_64 = x; then
1780                                                 with_cpu_64=generic
1781                                         fi
1782                                 else
1783                                         case " $x86_cpus $x86_archs $x86_64_archs " in
1784                                         *" $with_cpu "*)
1785                                                 ;;
1786                                         *)
1787                                                 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1788                                                 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1789                                                 exit 1
1790                                                 ;;
1791                                         esac
1792                                 fi
1793                         fi
1794                         ;;
1795                 *)
1796                         ;;
1797         esac
1798         tm_file="${tm_file} i386/mingw-stdint.h"
1799         tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
1800         case ${target} in
1801                x86_64-w64-*)
1802                         tmake_file="${tmake_file} i386/t-mingw-w64"
1803                         ;;
1804                i[34567]86-w64-*)
1805                         tmake_file="${tmake_file} i386/t-mingw-w32"
1806                         ;;
1807         esac
1808         native_system_header_dir=/mingw/include
1809         target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1810         extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
1811         case ${target} in
1812                 *-w64-*)
1813                         extra_options="${extra_options} i386/mingw-w64.opt"
1814                         ;;
1815                 *)
1816                         ;;
1817         esac
1818         extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1819         c_target_objs="${c_target_objs} msformat-c.o"
1820         cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1821         gas=yes
1822         gnu_ld=yes
1823         default_use_cxa_atexit=yes
1824         use_gcc_stdint=wrap
1825         case ${enable_threads} in
1826           "" | yes | win32)
1827             thread_file='win32'
1828             ;;
1829           posix)
1830             thread_file='posix'
1831             ;;
1832         esac
1833         case ${target} in
1834                 *mingw32crt*)
1835                         tm_file="${tm_file} i386/crtdll.h"
1836                         ;;
1837                 *mingw32msv* | *mingw*)
1838                         ;;
1839         esac
1840         ;;
1841 x86_64-*-fuchsia*)
1842         tmake_file="${tmake_file} i386/t-x86_64-elf"
1843         tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
1844         ;;
1845 ia64*-*-elf*)
1846         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
1847         tmake_file="ia64/t-ia64"
1848         target_cpu_default="0"
1849         if test x$gas = xyes
1850         then
1851                 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1852         fi
1853         if test x$gnu_ld = xyes
1854         then
1855                 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1856         fi
1857         ;;
1858 ia64*-*-freebsd*)
1859         tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
1860         target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1861         tmake_file="${tmake_file} ia64/t-ia64"
1862         ;;
1863 ia64*-*-linux*)
1864         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
1865         tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
1866         target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1867         ;;
1868 ia64*-*-hpux*)
1869         tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
1870         tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
1871         target_cpu_default="MASK_GNU_AS"
1872         case x$enable_threads in
1873         x | xyes | xposix )
1874                 thread_file=posix
1875                 ;;
1876         esac
1877         use_collect2=no
1878         c_target_objs="ia64-c.o"
1879         cxx_target_objs="ia64-c.o"
1880         extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
1881         use_gcc_stdint=wrap
1882         tm_file="${tm_file} hpux-stdint.h"
1883         case ${target} in
1884         *-*-hpux11.3*)
1885                 tm_file="${tm_file} ia64/hpux-unix2003.h"
1886                 ;;
1887         esac
1888         ;;
1889 ia64-hp-*vms*)
1890         tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
1891         tmake_file="${tmake_file} ia64/t-ia64"
1892         target_cpu_default="0"
1893         if test x$gas = xyes
1894         then
1895                 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1896         fi
1897         extra_options="${extra_options} ia64/vms.opt"
1898         ;;
1899 iq2000*-*-elf*)
1900         tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
1901         out_file=iq2000/iq2000.c
1902         md_file=iq2000/iq2000.md
1903         ;;
1904 lm32-*-elf*)
1905         tm_file="dbxelf.h elfos.h ${tm_file} newlib-stdint.h"
1906         tmake_file="${tmake_file} lm32/t-lm32"
1907         ;;
1908 lm32-*-rtems*)
1909         tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
1910         tmake_file="${tmake_file} lm32/t-lm32"
1911         tmake_file="${tmake_file} lm32/t-rtems"
1912          ;;
1913 lm32-*-uclinux*)
1914         tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
1915         tmake_file="${tmake_file} lm32/t-lm32"
1916         ;;
1917 m32r-*-elf*)
1918         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1919         ;;
1920 m32rle-*-elf*)
1921         tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
1922         ;;
1923 m32r-*-linux*)
1924         tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
1925         tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1926         gnu_ld=yes
1927         if test x$enable_threads = xyes; then
1928                 thread_file='posix'
1929         fi
1930         ;;
1931 m32rle-*-linux*)
1932         tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
1933         tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1934         gnu_ld=yes
1935         if test x$enable_threads = xyes; then
1936                 thread_file='posix'
1937         fi
1938         ;;
1939 m68k-*-elf* | fido-*-elf*)
1940         case ${target} in
1941         fido-*-elf*)
1942                 # Check that $with_cpu makes sense.
1943                 case $with_cpu in
1944                 "" | "fidoa")
1945                         ;;
1946                 *)
1947                         echo "Cannot accept --with-cpu=$with_cpu"
1948                         exit 1
1949                         ;;
1950                 esac
1951                 with_cpu=fidoa
1952                 ;;
1953         *)
1954                 default_m68k_cpu=68020
1955                 default_cf_cpu=5206
1956                 ;;
1957         esac
1958         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"
1959         tm_defines="${tm_defines} MOTOROLA=1"
1960         tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
1961         # Add multilibs for targets other than fido.
1962         case ${target} in
1963         fido-*-elf*)
1964                 ;;
1965         *)
1966                 tmake_file="$tmake_file m68k/t-mlibs"
1967                 ;;
1968         esac
1969         ;;
1970 m68k*-*-netbsdelf*)
1971         default_m68k_cpu=68020
1972         default_cf_cpu=5475
1973         tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
1974         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1975         tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
1976         ;;
1977 m68k*-*-openbsd*)
1978         default_m68k_cpu=68020
1979         default_cf_cpu=5475
1980         # needed to unconfuse gdb
1981         tm_defines="${tm_defines} OBSD_OLD_GAS"
1982         tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
1983         extra_options="${extra_options} openbsd.opt"
1984         tmake_file="t-openbsd m68k/t-openbsd"
1985         # we need collect2 until our bug is fixed...
1986         use_collect2=yes
1987         ;;
1988 m68k-*-uclinux*)                # Motorola m68k/ColdFire running uClinux
1989                                 # with uClibc, using the new GNU/Linux-style
1990                                 # ABI.
1991         default_m68k_cpu=68020
1992         default_cf_cpu=5206
1993         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"
1994         extra_options="${extra_options} m68k/uclinux.opt"
1995         tm_defines="${tm_defines} MOTOROLA=1"
1996         tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
1997         ;;
1998 m68k-*-linux*)                  # Motorola m68k's running GNU/Linux
1999                                 # with ELF format using glibc 2
2000                                 # aka the GNU/Linux C library 6.
2001         default_m68k_cpu=68020
2002         default_cf_cpu=5475
2003         with_arch=${with_arch:-m68k}
2004         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
2005         extra_options="${extra_options} m68k/ieee.opt"
2006         tm_defines="${tm_defines} MOTOROLA=1"
2007         tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
2008         ;;
2009 m68k-*-rtems*)
2010         default_m68k_cpu=68020
2011         default_cf_cpu=5206
2012         tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
2013         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"
2014         tm_defines="${tm_defines} MOTOROLA=1"
2015         ;;
2016 mcore-*-elf)
2017         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
2018         tmake_file=mcore/t-mcore
2019         inhibit_libc=true
2020         ;;
2021 microblaze*-linux*)
2022         case $target in
2023                 microblazeel-*)
2024                         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2025                         ;;
2026                 microblaze-*)
2027                         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2028                         ;;
2029         esac
2030         tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
2031         tm_file="${tm_file} glibc-stdint.h"
2032         c_target_objs="${c_target_objs} microblaze-c.o"
2033         cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2034         tmake_file="${tmake_file} microblaze/t-microblaze"
2035         tmake_file="${tmake_file} microblaze/t-microblaze-linux"
2036         ;;
2037 microblaze*-*-rtems*)
2038         case $target in
2039                 microblazeel-*)
2040                         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2041                         ;;
2042                 microblaze-*)
2043                         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2044                         ;;
2045         esac
2046         tm_file="${tm_file} dbxelf.h"
2047         tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2048         c_target_objs="${c_target_objs} microblaze-c.o"
2049         cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2050         tmake_file="${tmake_file} microblaze/t-microblaze"
2051         tmake_file="${tmake_file} microblaze/t-rtems"
2052         ;;
2053 microblaze*-*-elf)
2054         case $target in
2055                 microblazeel-*)
2056                         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2057                         ;;
2058                 microblaze-*)
2059                         tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2060                         ;;
2061         esac
2062         tm_file="${tm_file} dbxelf.h newlib-stdint.h"
2063         c_target_objs="${c_target_objs} microblaze-c.o"
2064         cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2065         tmake_file="${tmake_file} microblaze/t-microblaze"
2066         ;;
2067 riscv*-*-linux*)
2068         tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2069         case "x${enable_multilib}" in
2070         xno) ;;
2071         xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2072         *) echo "Unknown value for enable_multilib"; exit 1
2073         esac
2074         tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2075         gnu_ld=yes
2076         gas=yes
2077         # Force .init_array support.  The configure script cannot always
2078         # automatically detect that GAS supports it, yet we require it.
2079         gcc_cv_initfini_array=yes
2080         ;;
2081 riscv*-*-elf* | riscv*-*-rtems*)
2082         tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
2083         case ${target} in
2084         *-*-rtems*)
2085           tm_file="${tm_file} rtems.h riscv/rtems.h"
2086           tmake_file="${tmake_file} riscv/t-rtems"
2087           ;;
2088         *)
2089           case "x${enable_multilib}" in
2090           xno) ;;
2091           xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2092           *) echo "Unknown value for enable_multilib"; exit 1
2093           esac
2094         esac
2095         tmake_file="${tmake_file} riscv/t-riscv"
2096         gnu_ld=yes
2097         gas=yes
2098         # Force .init_array support.  The configure script cannot always
2099         # automatically detect that GAS supports it, yet we require it.
2100         gcc_cv_initfini_array=yes
2101         ;;
2102 riscv*-*-freebsd*)
2103         tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
2104         tmake_file="${tmake_file} riscv/t-riscv"
2105         gnu_ld=yes
2106         gas=yes
2107         # Force .init_array support.  The configure script cannot always
2108         # automatically detect that GAS supports it, yet we require it.
2109         gcc_cv_initfini_array=yes
2110         ;;
2111 mips*-*-netbsd*)                        # NetBSD/mips, either endian.
2112         target_cpu_default="MASK_ABICALLS"
2113         tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
2114         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2115         ;;
2116 mips*-img-linux*)
2117         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"
2118         extra_options="${extra_options} linux-android.opt"
2119         tmake_file="${tmake_file} mips/t-img-linux"
2120         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2121         with_arch_32="mips32r6"
2122         with_arch_64="mips64r6"
2123         gnu_ld=yes
2124         gas=yes
2125         ;;
2126 mips*-mti-linux*)
2127         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"
2128         extra_options="${extra_options} linux-android.opt"
2129         tmake_file="${tmake_file} mips/t-mti-linux"
2130         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2131         with_arch_32="mips32r2"
2132         with_arch_64="mips64r2"
2133         gnu_ld=yes
2134         gas=yes
2135         ;;
2136 mips*-*-linux*)                         # Linux MIPS, either endian.
2137         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"
2138         extra_options="${extra_options} linux-android.opt"
2139         case ${target} in
2140                 mipsisa32r6*)
2141                         default_mips_arch=mips32r6
2142                         ;;
2143                 mipsisa32r2*)
2144                         default_mips_arch=mips32r2
2145                         ;;
2146                 mipsisa32*)
2147                         default_mips_arch=mips32
2148                         ;;
2149                 mips64el-st-linux-gnu)
2150                         default_mips_abi=n32
2151                         tm_file="${tm_file} mips/st.h"
2152                         tmake_file="${tmake_file} mips/t-st"
2153                         enable_mips_multilibs="yes"
2154                         ;;
2155                 mips64octeon*-*-linux*)
2156                         default_mips_abi=n32
2157                         tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2158                         target_cpu_default=MASK_SOFT_FLOAT_ABI
2159                         enable_mips_multilibs="yes"
2160                         ;;
2161                 mipsisa64r6*-*-linux*)
2162                         default_mips_abi=n32
2163                         default_mips_arch=mips64r6
2164                         enable_mips_multilibs="yes"
2165                         ;;
2166                 mipsisa64r2*-*-linux*)
2167                         default_mips_abi=n32
2168                         default_mips_arch=mips64r2
2169                         enable_mips_multilibs="yes"
2170                         ;;
2171                 mips64*-*-linux* | mipsisa64*-*-linux*)
2172                         default_mips_abi=n32
2173                         enable_mips_multilibs="yes"
2174                         ;;
2175         esac
2176         if test x$enable_targets = xall; then
2177                 enable_mips_multilibs="yes"
2178         fi
2179         if test x$enable_mips_multilibs = xyes; then
2180                 tmake_file="${tmake_file} mips/t-linux64"
2181         fi
2182         ;;
2183 mips*-mti-elf*)
2184         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2185         tmake_file="mips/t-mti-elf"
2186         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2187         with_arch_32="mips32r2"
2188         with_arch_64="mips64r2"
2189         ;;
2190 mips*-img-elf*)
2191         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2192         tmake_file="mips/t-img-elf"
2193         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2194         with_arch_32="mips32r6"
2195         with_arch_64="mips64r6"
2196         ;;
2197 mips*-sde-elf*)
2198         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2199         tmake_file="mips/t-sde"
2200         extra_options="${extra_options} mips/sde.opt"
2201         case "${with_newlib}" in
2202           yes)
2203             # newlib / libgloss.
2204             ;;
2205           *)
2206             # MIPS toolkit libraries.
2207             tm_file="$tm_file mips/sdemtk.h"
2208             tmake_file="$tmake_file mips/t-sdemtk"
2209             case ${enable_threads} in
2210               "" | yes | mipssde)
2211                 thread_file='mipssde'
2212                 ;;
2213             esac
2214             ;;
2215         esac
2216         case ${target} in
2217           mipsisa32r6*)
2218             tm_defines="MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2219             ;;
2220           mipsisa32r2*)
2221             tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2222             ;;
2223           mipsisa32*)
2224             tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2225             ;;
2226           mipsisa64r6*)
2227             tm_defines="MIPS_ISA_DEFAULT=69 MIPS_ABI_DEFAULT=ABI_N32"
2228             ;;
2229           mipsisa64r2*)
2230             tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2231             ;;
2232           mipsisa64*)
2233             tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2234             ;;
2235         esac
2236         ;;
2237 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2238 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2239 mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2240 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2241 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2242 mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2243         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2244         tmake_file="mips/t-isa3264"
2245         case ${target} in
2246           mipsisa32r6*)
2247             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37"
2248             ;;
2249           mipsisa32r2*)
2250             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2251             ;;
2252           mipsisa32*)
2253             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2254             ;;
2255           mipsisa64r6*)
2256             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=69"
2257             ;;
2258           mipsisa64r2*)
2259             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2260             ;;
2261           mipsisa64*)
2262             tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2263             ;;
2264         esac
2265         case ${target} in
2266           mipsisa32*-*-elfoabi*)
2267             tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2268             tm_file="${tm_file} mips/elfoabi.h"
2269             ;;
2270           mipsisa64*-*-elfoabi*)
2271             tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2272             tm_file="${tm_file} mips/elfoabi.h"
2273             ;;
2274           *-*-elf*)
2275             tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2276             ;;
2277         esac
2278         ;;
2279 mipsisa64sr71k-*-elf*)
2280         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2281         tmake_file=mips/t-sr71k
2282         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2283         ;;
2284 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2285         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2286         tmake_file="mips/t-elf mips/t-sb1"
2287         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2288         ;;
2289 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2290         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2291         tmake_file="mips/t-elf"
2292         ;;
2293 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2294         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2295         tmake_file="mips/t-elf"
2296         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2297         ;;
2298 mips64-*-elf* | mips64el-*-elf*)
2299         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2300         tmake_file="mips/t-elf"
2301         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2302         ;;
2303 mips64vr-*-elf* | mips64vrel-*-elf*)
2304         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2305         tmake_file=mips/t-vr
2306         tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2307         ;;
2308 mips64orion-*-elf* | mips64orionel-*-elf*)
2309         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2310         tmake_file="mips/t-elf"
2311         tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2312         ;;
2313 mips*-*-rtems*)
2314         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2315         tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2316         ;;
2317 mips-wrs-vxworks)
2318         tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2319         tmake_file="${tmake_file} mips/t-vxworks"
2320         ;;
2321 mipstx39-*-elf* | mipstx39el-*-elf*)
2322         tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2323         tmake_file="mips/t-r3900"
2324         ;;
2325 mmix-knuth-mmixware)
2326         tm_file="${tm_file} newlib-stdint.h"
2327         use_gcc_stdint=wrap
2328         ;;
2329 mn10300-*-*)
2330         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2331         if test x$stabs = xyes
2332         then
2333                 tm_file="${tm_file} dbx.h"
2334         fi
2335         use_collect2=no
2336         use_gcc_stdint=wrap
2337         ;;
2338 msp430*-*-*)
2339         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2340         c_target_objs="msp430-c.o"
2341         cxx_target_objs="msp430-c.o"
2342         tmake_file="${tmake_file} msp430/t-msp430"
2343         extra_gcc_objs="driver-msp430.o"
2344         ;;
2345 nds32*-*-*)
2346         target_cpu_default="0"
2347         tm_defines="${tm_defines}"
2348         case ${target} in
2349           nds32le*-*-*)
2350             ;;
2351           nds32be-*-*)
2352             target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2353             tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2354             ;;
2355         esac
2356         case ${target} in
2357           nds32*-*-elf*)
2358             tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2359             tmake_file="nds32/t-nds32 nds32/t-elf"
2360             ;;
2361           nds32*-*-linux*)
2362             tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2363             tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2364             ;;
2365         esac
2367         # Handle --enable-default-relax setting.
2368         if test x${enable_default_relax} = xyes; then
2369                 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2370         fi
2371         # Handle --with-ext-dsp
2372         if test x${with_ext_dsp} = xyes; then
2373                 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2374         fi
2375         ;;
2376 nios2-*-*)
2377         tm_file="elfos.h ${tm_file}"
2378         tmake_file="${tmake_file} nios2/t-nios2"
2379         case ${target} in
2380         nios2-*-linux*)
2381                 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2382                 ;;
2383         nios2-*-elf*)
2384                 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2385                 extra_options="${extra_options} nios2/elf.opt"
2386                 ;;
2387         nios2-*-rtems*)
2388                 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2389                 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2390                 ;;
2391         esac
2392         ;;
2393 nvptx-*)
2394         tm_file="${tm_file} newlib-stdint.h"
2395         use_gcc_stdint=wrap
2396         tmake_file="nvptx/t-nvptx"
2397         if test x$enable_as_accelerator = xyes; then
2398                 extra_programs="${extra_programs} mkoffload\$(exeext)"
2399                 tm_file="${tm_file} nvptx/offload.h"
2400         fi
2401         ;;
2402 pdp11-*-*)
2403         tm_file="${tm_file} newlib-stdint.h"
2404         use_gcc_stdint=wrap
2405         ;;
2406 # port not yet contributed
2407 #powerpc-*-openbsd*)
2408 #       tmake_file="${tmake_file} rs6000/t-fprules"
2409 #       extra_headers=
2410 #       ;;
2411 powerpc-*-darwin*)
2412         extra_options="${extra_options} rs6000/darwin.opt"
2413         case ${target} in
2414           *-darwin1[0-9]* | *-darwin[8-9]*)
2415             tmake_file="${tmake_file} rs6000/t-darwin8"
2416             tm_file="${tm_file} rs6000/darwin8.h"
2417             ;;
2418           *-darwin7*)
2419             tm_file="${tm_file} rs6000/darwin7.h"
2420             ;;
2421           *-darwin[0-6]*)
2422             ;;
2423         esac
2424         tmake_file="${tmake_file} t-slibgcc"
2425         extra_headers=altivec.h
2426         ;;
2427 powerpc64-*-darwin*)
2428         extra_options="${extra_options} ${cpu_type}/darwin.opt"
2429         tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
2430         tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
2431         extra_headers=altivec.h
2432         ;;
2433 powerpc*-*-freebsd*)
2434         tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h"
2435         extra_options="${extra_options} rs6000/sysv4.opt"
2436         tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2437         case ${target} in
2438              powerpc64*)
2439                 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2440                 tmake_file="${tmake_file} rs6000/t-freebsd64"
2441                 extra_options="${extra_options} rs6000/linux64.opt"
2442                 ;;
2443              *)
2444                 tm_file="${tm_file} rs6000/freebsd.h"
2445                 ;;
2446         esac
2447         ;;
2448 powerpc-*-netbsd*)
2449         tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2450         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2451         tmake_file="${tmake_file} rs6000/t-netbsd"
2452         extra_options="${extra_options} rs6000/sysv4.opt"
2453         ;;
2454 powerpc-*-eabispe*)
2455         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"
2456         extra_options="${extra_options} ${cpu_type}/sysv4.opt"
2457         tmake_file="${cpu_type}/t-spe ${cpu_type}/t-ppccomm"
2458         use_gcc_stdint=wrap
2459         ;;
2460 powerpc-*-eabisimaltivec*)
2461         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"
2462         extra_options="${extra_options} rs6000/sysv4.opt"
2463         tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2464         use_gcc_stdint=wrap
2465         ;;
2466 powerpc-*-eabisim*)
2467         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"
2468         extra_options="${extra_options} rs6000/sysv4.opt"
2469         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2470         use_gcc_stdint=wrap
2471         ;;
2472 powerpc-*-elf*)
2473         tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2474         extra_options="${extra_options} rs6000/sysv4.opt"
2475         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2476         ;;
2477 powerpc-*-eabialtivec*)
2478         tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabialtivec.h"
2479         extra_options="${extra_options} rs6000/sysv4.opt"
2480         tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2481         use_gcc_stdint=wrap
2482         ;;
2483 powerpc-*-eabi*)
2484         tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h"
2485         extra_options="${extra_options} rs6000/sysv4.opt"
2486         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2487         use_gcc_stdint=wrap
2488         ;;
2489 powerpc-*-rtems*spe*)
2490         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"
2491         extra_options="${extra_options} powerpcspe/sysv4.opt"
2492         tmake_file="${tmake_file} powerpcspe/t-fprules powerpcspe/t-rtems powerpcspe/t-ppccomm"
2493         ;;
2494 powerpc-*-rtems*)
2495         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"
2496         extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2497         tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2498         ;;
2499 powerpc*-*-linux*spe*)
2500         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h powerpcspe/sysv4.h"
2501         extra_options="${extra_options} powerpcspe/sysv4.opt"
2502         tmake_file="${tmake_file} powerpcspe/t-fprules powerpcspe/t-ppccomm"
2503         extra_objs="$extra_objs powerpcspe-linux.o"
2504         maybe_biarch=
2505         tm_file="${tm_file} powerpcspe/linux.h glibc-stdint.h"
2506         tmake_file="${tmake_file} powerpcspe/t-ppcos powerpcspe/t-linux"
2507         tm_file="${tm_file} powerpcspe/linuxspe.h powerpcspe/e500.h"
2508         ;;
2509 powerpc*-*-linux*)
2510         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2511         extra_options="${extra_options} rs6000/sysv4.opt"
2512         tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2513         extra_objs="$extra_objs rs6000-linux.o"
2514         case ${target} in
2515             powerpc*le-*-*)
2516                 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2517         esac
2518         case ${target}:${with_cpu} in
2519             powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2520         esac
2521         maybe_biarch=${cpu_is_64bit}
2522         case ${enable_targets} in
2523             *powerpc64*) maybe_biarch=yes ;;
2524             all) maybe_biarch=yes ;;
2525         esac
2526         case ${target} in
2527             powerpc64*-*-linux*spe* | powerpc*-*-linux*paired*)
2528                 echo "*** Configuration ${target} not supported" 1>&2
2529                 exit 1
2530                 ;;
2531             powerpc*-*-linux*spe*)
2532                 maybe_biarch=
2533                 ;;
2534         esac
2535         case ${target}:${enable_targets}:${maybe_biarch} in
2536             powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2537             | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2538             | powerpcle-*:*powerpc64le*:yes)
2539                 if test x$cpu_is_64bit = xyes; then
2540                     tm_file="${tm_file} rs6000/default64.h"
2541                 fi
2542                 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2543                 tmake_file="$tmake_file rs6000/t-linux64"
2544                 case ${target} in
2545                     powerpc*le-*-*)
2546                         tmake_file="$tmake_file rs6000/t-linux64le"
2547                         case ${enable_targets} in
2548                             all | *powerpc64-* | *powerpc-*)
2549                                 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2550                         esac ;;
2551                     *)
2552                         case ${enable_targets} in
2553                             all | *powerpc64le-* | *powerpcle-*)
2554                                 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2555                         esac ;;
2556                 esac
2557                 extra_options="${extra_options} rs6000/linux64.opt"
2558                 ;;
2559             powerpc64*)
2560                 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
2561                 extra_options="${extra_options} rs6000/linux64.opt"
2562                 tmake_file="${tmake_file} rs6000/t-linux"
2563                 ;;
2564             *)
2565                 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2566                 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
2567                 ;;
2568         esac
2569         case ${target} in
2570             powerpc*-*-linux*ppc476*)
2571                 tm_file="${tm_file} rs6000/476.h"
2572                 extra_options="${extra_options} rs6000/476.opt" ;;
2573             powerpc*-*-linux*altivec*)
2574                 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2575             powerpc*-*-linux*spe*)
2576                 tm_file="${tm_file} ${cpu_type}/linuxspe.h ${cpu_type}/e500.h" ;;
2577         esac
2578         case ${target} in
2579             *-linux*-musl*)
2580                 enable_secureplt=yes ;;
2581         esac
2582         if test x${enable_secureplt} = xyes; then
2583                 tm_file="rs6000/secureplt.h ${tm_file}"
2584         fi
2585         ;;
2586 powerpc-wrs-vxworks*spe)
2587         tm_file="${tm_file} elfos.h freebsd-spec.h powerpcspe/sysv4.h"
2588         tmake_file="${tmake_file} powerpcspe/t-fprules powerpcspe/t-ppccomm powerpcspe/t-vxworks"
2589         extra_options="${extra_options} powerpcspe/sysv4.opt"
2590         extra_headers=ppc-asm.h
2591         tm_file="${tm_file} vx-common.h vxworks.h powerpcspe/vxworks.h powerpcspe/e500.h"
2592         ;;
2593 powerpc-wrs-vxworks*)
2594         tm_file="${tm_file} elfos.h freebsd-spec.h rs6000/sysv4.h"
2595         tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2596         extra_options="${extra_options} rs6000/sysv4.opt"
2597         extra_headers=ppc-asm.h
2598         case ${target} in
2599           *-vxworksmils*)
2600             tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
2601             tmake_file="${tmake_file} rs6000/t-vxworksmils"
2602             ;;
2603           *-vxworksae*)
2604             tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
2605             tmake_file="${tmake_file} rs6000/t-vxworksae"
2606             ;;
2607           *-vxworks*)
2608             tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
2609             ;;
2610         esac
2611         ;;
2612 powerpc-*-lynxos*)
2613         xm_defines=POSIX
2614         tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2615         tmake_file="t-lynx rs6000/t-lynx"
2616         extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2617         thread_file=lynx
2618         gnu_ld=yes
2619         gas=yes
2620         ;;
2621 powerpcle-*-elf*)
2622         tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
2623         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2624         extra_options="${extra_options} rs6000/sysv4.opt"
2625         ;;
2626 powerpcle-*-eabisim*)
2627         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"
2628         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2629         extra_options="${extra_options} rs6000/sysv4.opt"
2630         use_gcc_stdint=wrap
2631         ;;
2632 powerpcle-*-eabi*)
2633         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"
2634         tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2635         extra_options="${extra_options} rs6000/sysv4.opt"
2636         use_gcc_stdint=wrap
2637         ;;
2638 rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
2639         tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h rs6000/aix-stdint.h"
2640         tmake_file="rs6000/t-aix43 t-slibgcc"
2641         extra_options="${extra_options} rs6000/aix64.opt"
2642         use_collect2=yes
2643         thread_file='aix'
2644         use_gcc_stdint=provide
2645         extra_headers=
2646         ;;
2647 rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
2648         tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix51.h rs6000/xcoff.h rs6000/aix-stdint.h"
2649         extra_options="${extra_options} rs6000/aix64.opt"
2650         tmake_file="rs6000/t-aix43 t-slibgcc"
2651         use_collect2=yes
2652         thread_file='aix'
2653         use_gcc_stdint=wrap
2654         extra_headers=
2655         ;;
2656 rs6000-ibm-aix5.2.* | powerpc-ibm-aix5.2.*)
2657         tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h rs6000/aix-stdint.h"
2658         tmake_file="rs6000/t-aix52 t-slibgcc"
2659         extra_options="${extra_options} rs6000/aix64.opt"
2660         use_collect2=yes
2661         thread_file='aix'
2662         use_gcc_stdint=wrap
2663         extra_headers=
2664         ;;
2665 rs6000-ibm-aix5.3.* | powerpc-ibm-aix5.3.*)
2666         tm_file="${tm_file} rs6000/aix.h rs6000/aix53.h rs6000/xcoff.h rs6000/aix-stdint.h"
2667         tmake_file="rs6000/t-aix52 t-slibgcc"
2668         extra_options="${extra_options} rs6000/aix64.opt"
2669         use_collect2=yes
2670         thread_file='aix'
2671         use_gcc_stdint=wrap
2672         extra_headers=altivec.h
2673         ;;
2674 rs6000-ibm-aix6.* | powerpc-ibm-aix6.*)
2675         tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2676         tmake_file="rs6000/t-aix52 t-slibgcc"
2677         extra_options="${extra_options} rs6000/aix64.opt"
2678         use_collect2=yes
2679         thread_file='aix'
2680         use_gcc_stdint=wrap
2681         extra_headers=altivec.h
2682         default_use_cxa_atexit=yes
2683         ;;
2684 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
2685         tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
2686         tmake_file="rs6000/t-aix52 t-slibgcc"
2687         extra_options="${extra_options} rs6000/aix64.opt"
2688         use_collect2=yes
2689         thread_file='aix'
2690         use_gcc_stdint=wrap
2691         extra_headers="altivec.h amo.h"
2692         default_use_cxa_atexit=yes
2693         ;;
2694 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
2695         tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
2696         tmake_file="rs6000/t-aix52 t-slibgcc"
2697         extra_options="${extra_options} rs6000/aix64.opt"
2698         use_collect2=yes
2699         thread_file='aix'
2700         use_gcc_stdint=wrap
2701         extra_headers="altivec.h amo.h"
2702         default_use_cxa_atexit=yes
2703         ;;
2704 rl78-*-elf*)
2705         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2706         target_has_targetm_common=no
2707         c_target_objs="rl78-c.o"
2708         cxx_target_objs="rl78-c.o"
2709         tmake_file="${tmake_file} rl78/t-rl78"
2710         ;;
2711 rx-*-elf*)
2712         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2713         tmake_file="${tmake_file} rx/t-rx"
2714         ;;
2715 s390-*-linux*)
2716         tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2717         c_target_objs="${c_target_objs} s390-c.o"
2718         cxx_target_objs="${cxx_target_objs} s390-c.o"
2719         if test x$enable_targets = xall; then
2720                 tmake_file="${tmake_file} s390/t-linux64"
2721         fi
2722         tmake_file="${tmake_file} s390/t-s390"
2723         ;;
2724 s390x-*-linux*)
2725         tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2726         tm_p_file="linux-protos.h s390/s390-protos.h"
2727         c_target_objs="${c_target_objs} s390-c.o"
2728         cxx_target_objs="${cxx_target_objs} s390-c.o"
2729         md_file=s390/s390.md
2730         extra_modes=s390/s390-modes.def
2731         out_file=s390/s390.c
2732         tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
2733         ;;
2734 s390x-ibm-tpf*)
2735         tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
2736         tm_p_file=s390/s390-protos.h
2737         c_target_objs="${c_target_objs} s390-c.o"
2738         cxx_target_objs="${cxx_target_objs} s390-c.o"
2739         md_file=s390/s390.md
2740         extra_modes=s390/s390-modes.def
2741         out_file=s390/s390.c
2742         thread_file='tpf'
2743         extra_options="${extra_options} s390/tpf.opt"
2744         tmake_file="${tmake_file} s390/t-s390"
2745         ;;
2746 sh-*-elf* | sh[12346l]*-*-elf* | \
2747   sh-*-linux* | sh[2346lbe]*-*-linux* | \
2748   sh-*-netbsdelf* | shl*-*-netbsdelf*)
2749         tmake_file="${tmake_file} sh/t-sh sh/t-elf"
2750         if test x${with_endian} = x; then
2751                 case ${target} in
2752                 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
2753                 shbe-*-* | sheb-*-*)               with_endian=big,little ;;
2754                 sh[1234]l* | sh[34]*-*-linux*)     with_endian=little ;;
2755                 shl* | sh*-*-linux* | \
2756                   sh-superh-elf)                   with_endian=little,big ;;
2757                 sh[1234]*-*-*)                     with_endian=big ;;
2758                 *)                                 with_endian=big,little ;;
2759                 esac
2760         fi
2761         # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
2762         #  First word : the default endian.
2763         #  Second word: the secondary endian (optional).
2764         case ${with_endian} in
2765         big)            TM_ENDIAN_CONFIG=mb ;;
2766         little)         TM_ENDIAN_CONFIG=ml ;;
2767         big,little)     TM_ENDIAN_CONFIG="mb ml" ;;
2768         little,big)     TM_ENDIAN_CONFIG="ml mb" ;;
2769         *)      echo "with_endian=${with_endian} not supported."; exit 1 ;;
2770         esac
2771         case ${with_endian} in
2772         little*)        tm_file="sh/little.h ${tm_file}" ;;
2773         esac
2774         tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
2775         case ${target} in
2776         sh*-*-linux*)   tmake_file="${tmake_file} sh/t-linux"
2777                         if test x$enable_fdpic = xyes; then
2778                                 tm_defines="$tm_defines FDPIC_DEFAULT=1"
2779                         fi
2780                         tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
2781         sh*-*-netbsd*)
2782                         tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
2783                         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2785                         ;;
2786         sh*-superh-elf) if test x$with_libgloss != xno; then
2787                                 with_libgloss=yes
2788                                 tm_file="${tm_file} sh/newlib.h"
2789                         fi
2790                         tm_file="${tm_file} sh/embed-elf.h"
2791                         tm_file="${tm_file} sh/superh.h"
2792                         extra_options="${extra_options} sh/superh.opt" ;;
2793         *)              if test x$with_newlib = xyes \
2794                            && test x$with_libgloss = xyes; then
2795                                 tm_file="${tm_file} sh/newlib.h"
2796                         fi
2797                         tm_file="${tm_file} sh/embed-elf.h" ;;
2798         esac
2799         case ${target} in
2800         *-*-netbsd)
2801                 ;;
2802         *-*-elf*)
2803                 tm_file="${tm_file} newlib-stdint.h"
2804                 ;;
2805         esac
2806         # sed el/eb endian suffixes away to avoid confusion with sh[23]e
2807         case `echo ${target} | sed 's/e[lb]-/-/'` in
2808         sh4a_single_only*)      sh_cpu_target=sh4a-single-only ;;
2809         sh4a_single*)           sh_cpu_target=sh4a-single ;;
2810         sh4a_nofpu*)            sh_cpu_target=sh4a-nofpu ;;
2811         sh4al)                  sh_cpu_target=sh4al ;;
2812         sh4a*)                  sh_cpu_target=sh4a ;;
2813         sh4_single_only*)       sh_cpu_target=sh4-single-only ;;
2814         sh4_single*)            sh_cpu_target=sh4-single ;;
2815         sh4_nofpu*)             sh_cpu_target=sh4-nofpu ;;
2816         sh4* | sh-superh-*)     sh_cpu_target=sh4 ;;
2817         sh3e*)                  sh_cpu_target=sh3e ;;
2818         sh*-*-netbsd* | sh3*)   sh_cpu_target=sh3 ;;
2819         sh2a_single_only*)      sh_cpu_target=sh2a-single-only ;;
2820         sh2a_single*)           sh_cpu_target=sh2a-single ;;
2821         sh2a_nofpu*)            sh_cpu_target=sh2a-nofpu ;;
2822         sh2a*)                  sh_cpu_target=sh2a ;;
2823         sh2e*)                  sh_cpu_target=sh2e ;;
2824         sh2*)                   sh_cpu_target=sh2 ;;
2825         *)                      sh_cpu_target=sh1 ;;
2826         esac
2827         # did the user say --without-fp ?
2828         if test x$with_fp = xno; then
2829                 case ${sh_cpu_target} in
2830                 sh4al | sh1)    ;;
2831                 sh4a* )         sh_cpu_target=sh4a-nofpu ;;
2832                 sh4*)           sh_cpu_target=sh4-nofpu ;;
2833                 sh3*)           sh_cpu_target=sh3 ;;
2834                 sh2a*)          sh_cpu_target=sh2a-nofpu ;;
2835                 sh2*)           sh_cpu_target=sh2 ;;
2836                 *)      echo --without-fp not available for $target: ignored
2837                 esac
2838                 tm_defines="$tm_defines STRICT_NOFPU=1"
2839         fi
2840         sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
2841         case $sh_cpu_default in
2842           sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
2843           sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
2844           sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
2845           sh3e | sh3 | sh2e | sh2 | sh1) ;;
2846         "")     sh_cpu_default=${sh_cpu_target} ;;
2847         *)      echo "with_cpu=$with_cpu not supported"; exit 1 ;;
2848         esac
2849         sh_multilibs=${with_multilib_list}
2850         if test "$sh_multilibs" = "default" ; then
2851                 case ${target} in
2852                 sh[1234]*)      sh_multilibs=${sh_cpu_target} ;;
2853                 sh-superh-*)    sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
2854                 sh*-*-linux*)   sh_multilibs=m1,m2,m2a,m3e,m4 ;;
2855                 sh*-*-netbsd*)  sh_multilibs=m3,m3e,m4 ;;
2856                 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
2857                 esac
2858                 if test x$with_fp = xno; then
2859                         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`"
2860                 fi
2861         fi
2862         target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
2863         tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
2864         tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2865         sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
2866         for sh_multilib in ${sh_multilibs}; do
2867                 case ${sh_multilib} in
2868                 m1 | m2 | m2e | m3 | m3e | \
2869                 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
2870                 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
2871                 m2a | m2a-single | m2a-single-only | m2a-nofpu)
2872                         # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
2873                         # It is passed to MULTIILIB_OPTIONS verbatim.
2874                         TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
2875                         tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2876                         ;;
2877                 \!*)    # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
2878                         # It is passed the MULTILIB_EXCEPTIONS verbatim.
2879                         TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
2880                 *)
2881                         echo "with_multilib_list=${sh_multilib} not supported."
2882                         exit 1
2883                         ;;
2884                 esac
2885         done
2886         TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
2887         if test x${enable_incomplete_targets} = xyes ; then
2888                 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
2889         fi
2890         tm_file="$tm_file ./sysroot-suffix.h"
2891         tmake_file="$tmake_file t-sysroot-suffix"
2892         ;;
2893 sh-*-rtems*)
2894         tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
2895         tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
2896         ;;
2897 sh-wrs-vxworks)
2898         tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
2899         tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
2900         ;;
2901 sparc-*-elf*)
2902         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
2903         case ${target} in
2904             *-leon-*)
2905                 tmake_file="sparc/t-sparc sparc/t-leon"
2906                 ;;
2907             *-leon[3-9]*)
2908                 tmake_file="sparc/t-sparc sparc/t-leon3"
2909                 ;;
2910             *)
2911                 tmake_file="sparc/t-sparc sparc/t-elf"
2912                 ;;
2913         esac
2914         ;;
2915 sparc-*-rtems*)
2916         tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
2917         tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
2918         ;;
2919 sparc-*-linux*)
2920         tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
2921         extra_options="${extra_options} sparc/long-double-switch.opt"
2922         case ${target} in
2923             *-leon-*)
2924                 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
2925                 ;;
2926             *-leon[3-9]*)
2927                 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
2928                 ;;
2929             *)
2930                 tmake_file="${tmake_file} sparc/t-sparc"
2931                 ;;
2932         esac
2933         if test x$enable_targets = xall; then
2934                 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
2935                 tmake_file="${tmake_file} sparc/t-linux64"
2936         else
2937                 tm_file="${tm_file} sparc/linux.h"
2938                 tmake_file="${tmake_file} sparc/t-linux"
2939         fi
2940         ;;
2941 sparc-*-netbsdelf*)
2942         tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
2943         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2944         extra_options="${extra_options} sparc/long-double-switch.opt"
2945         tmake_file="${tmake_file} sparc/t-sparc"
2946         ;;
2947 sparc*-*-solaris2*)
2948         tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
2949         case ${target} in
2950             sparc64-*-* | sparcv9-*-*)
2951                 tm_file="sparc/default64.h ${tm_file}"
2952                 ;;
2953             *)
2954                 test x$with_cpu != x || with_cpu=v9
2955                 ;;
2956         esac
2957         tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
2958         ;;
2959 sparc-wrs-vxworks)
2960         tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
2961         tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
2962         ;;
2963 sparc64-*-elf*)
2964         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
2965         extra_options="${extra_options}"
2966         tmake_file="${tmake_file} sparc/t-sparc"
2967         ;;
2968 sparc64-*-rtems*)
2969         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
2970         extra_options="${extra_options}"
2971         tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
2972         ;;
2973 sparc64-*-linux*)
2974         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"
2975         extra_options="${extra_options} sparc/long-double-switch.opt"
2976         tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
2977         ;;
2978 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
2979         tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
2980         extra_options="${extra_options} sparc/long-double-switch.opt"
2981         case "x$with_cpu" in
2982                 xultrasparc) ;;
2983                 x) with_cpu=ultrasparc ;;
2984                 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
2985         esac
2986         tmake_file="${tmake_file} sparc/t-sparc"
2987         ;;
2988 sparc64-*-netbsd*)
2989         tm_file="sparc/biarch64.h ${tm_file}"
2990         tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
2991         extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2992         extra_options="${extra_options} sparc/long-double-switch.opt"
2993         tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
2994         ;;
2995 sparc64-*-openbsd*)
2996         tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
2997         tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
2998         extra_options="${extra_options} openbsd.opt"
2999         extra_options="${extra_options}"
3000         gas=yes gnu_ld=yes
3001         with_cpu=ultrasparc
3002         tmake_file="${tmake_file} sparc/t-sparc"
3003         ;;
3004 spu-*-elf*)
3005         tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
3006         tmake_file="spu/t-spu-elf"
3007         native_system_header_dir=/include
3008         extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
3009         extra_modes=spu/spu-modes.def
3010         c_target_objs="${c_target_objs} spu-c.o"
3011         cxx_target_objs="${cxx_target_objs} spu-c.o"
3012         ;;
3013 tic6x-*-elf)
3014         tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3015         tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
3016         tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3017         use_collect2=no
3018         ;;
3019 tic6x-*-uclinux)
3020         tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3021         tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
3022         tm_file="${tm_file} ./sysroot-suffix.h"
3023         tmake_file="t-sysroot-suffix t-slibgcc"
3024         tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
3025         use_collect2=no
3026         ;;
3027 tilegx*-*-linux*)
3028         tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
3029         tmake_file="${tmake_file} tilegx/t-tilegx"
3030         extra_objs="${extra_objs} mul-tables.o"
3031         c_target_objs="${c_target_objs} tilegx-c.o"
3032         cxx_target_objs="${cxx_target_objs} tilegx-c.o"
3033         extra_headers="feedback.h"
3034         case $target in
3035         tilegxbe-*)
3036                 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
3037                 ;;
3038         esac
3039         ;;
3040 tilepro*-*-linux*)
3041         tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
3042         tmake_file="${tmake_file} tilepro/t-tilepro"
3043         extra_objs="${extra_objs} mul-tables.o"
3044         c_target_objs="${c_target_objs} tilepro-c.o"
3045         cxx_target_objs="${cxx_target_objs} tilepro-c.o"
3046         extra_headers="feedback.h"
3047         ;;
3048 v850-*-rtems*)
3049         target_cpu_default="TARGET_CPU_generic"
3050         tm_file="dbxelf.h elfos.h v850/v850.h"
3051         tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
3052         tmake_file="${tmake_file} v850/t-v850"
3053         tmake_file="${tmake_file} v850/t-rtems"
3054         use_collect2=no
3055         c_target_objs="v850-c.o"
3056         cxx_target_objs="v850-c.o"
3057         ;;
3058 v850*-*-*)
3059         case ${target} in
3060         v850e3v5-*-*)
3061                 target_cpu_default="TARGET_CPU_v850e3v5"
3062                 ;;
3063         v850e2v3-*-*)
3064                 target_cpu_default="TARGET_CPU_v850e2v3"
3065                 ;;
3066         v850e2-*-*)
3067                 target_cpu_default="TARGET_CPU_v850e2"
3068                 ;;
3069         v850e1-*-* | v850es-*-*)
3070                 target_cpu_default="TARGET_CPU_v850e1"
3071                 ;;
3072         v850e-*-*)
3073                 target_cpu_default="TARGET_CPU_v850e"
3074                 ;;
3075         v850-*-*)
3076                 target_cpu_default="TARGET_CPU_generic"
3077                 ;;
3078         esac
3079         tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
3080         if test x$stabs = xyes
3081         then
3082                 tm_file="${tm_file} dbx.h"
3083         fi
3084         use_collect2=no
3085         c_target_objs="v850-c.o"
3086         cxx_target_objs="v850-c.o"
3087         use_gcc_stdint=wrap
3088         ;;
3089 vax-*-linux*)
3090         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
3091         extra_options="${extra_options} vax/elf.opt"
3092         ;;
3093 vax-*-netbsdelf*)
3094         tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
3095         extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3096         tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
3097         ;;
3098 vax-*-openbsd*)
3099         tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-libpthread.h vax/openbsd.h"
3100         extra_options="${extra_options} openbsd.opt"
3101         use_collect2=yes
3102         ;;
3103 visium-*-elf*)
3104         tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3105         tmake_file="visium/t-visium visium/t-crtstuff"
3106         ;;
3107 xstormy16-*-elf)
3108         # For historical reasons, the target files omit the 'x'.
3109         tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
3110         tm_p_file=stormy16/stormy16-protos.h
3111         md_file=stormy16/stormy16.md
3112         out_file=stormy16/stormy16.c
3113         extra_options=stormy16/stormy16.opt
3114         tmake_file="stormy16/t-stormy16"
3115         ;;
3116 xtensa*-*-elf*)
3117         tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
3118         extra_options="${extra_options} xtensa/elf.opt"
3119         ;;
3120 xtensa*-*-linux*)
3121         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3122         tmake_file="${tmake_file} xtensa/t-xtensa"
3123         ;;
3124 xtensa*-*-uclinux*)
3125         tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3126         tmake_file="${tmake_file} xtensa/t-xtensa"
3127         extra_options="${extra_options} xtensa/uclinux.opt"
3128         ;;
3129 am33_2.0-*-linux*)
3130         tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3131         gas=yes gnu_ld=yes
3132         use_collect2=no
3133         ;;
3134 m32c-*-rtems*)
3135         tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
3136         c_target_objs="m32c-pragma.o"
3137         cxx_target_objs="m32c-pragma.o"
3138         ;;
3139 m32c-*-elf*)
3140         tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3141         c_target_objs="m32c-pragma.o"
3142         cxx_target_objs="m32c-pragma.o"
3143         ;;
3145         echo "*** Configuration ${target} not supported" 1>&2
3146         exit 1
3147         ;;
3148 esac
3150 case ${target} in
3151 i[34567]86-*-linux* | x86_64-*-linux*)
3152         tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3153         ;;
3154 i[34567]86-*-* | x86_64-*-*)
3155         tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3156         ;;
3157 powerpc*-*-* | rs6000-*-*)
3158         tm_file="${tm_file} ${cpu_type}/option-defaults.h"
3159 esac
3161 # non-glibc systems
3162 case ${target} in
3163 *-linux-musl*)
3164         tmake_file="${tmake_file} t-musl"
3165         ;;
3166 *-linux-uclibc*)
3167         tmake_file="${tmake_file} t-uclibc"
3168         ;;
3169 esac
3171 # Assume the existence of indirect function support and allow the use of the
3172 # resolver attribute.
3173 case ${target} in
3174 *-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3175         ;;
3176 *-*-linux*)
3177         case ${target} in
3178         aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
3179                 default_gnu_indirect_function=yes
3180                 ;;
3181         esac
3182         ;;
3183 esac
3185 # Build mkoffload tool
3186 case ${target} in
3187 *-intelmic-* | *-intelmicemul-*)
3188         tmake_file="${tmake_file} i386/t-intelmic"
3189         tm_file="${tm_file} i386/intelmic-offload.h"
3190         ;;
3191 esac
3193 if [ "$target_has_targetcm" = "no" ]; then
3194   c_target_objs="$c_target_objs default-c.o"
3195   cxx_target_objs="$cxx_target_objs default-c.o"
3198 if [ "$common_out_file" = "" ]; then
3199   if [ "$target_has_targetm_common" = "yes" ]; then
3200     common_out_file="$cpu_type/$cpu_type-common.c"
3201   else
3202     common_out_file="default-common.c"
3203   fi
3206 # Support for --with-cpu and related options (and a few unrelated options,
3207 # too).
3208 case ${with_cpu} in
3209   yes | no)
3210     echo "--with-cpu must be passed a value" 1>&2
3211     exit 1
3212     ;;
3213 esac
3215 # Set arch and cpu from ${target} and ${target_noncanonical}.  Set cpu
3216 # to generic if there is no processor scheduler model for the target.
3217 arch=
3218 cpu=
3219 arch_without_sse2=no
3220 arch_without_64bit=no
3221 case ${target} in
3222   i386-*-freebsd*)
3223     if test $fbsd_major -ge 6; then
3224       arch=i486
3225     else
3226       arch=i386
3227     fi
3228     cpu=generic
3229     arch_without_sse2=yes
3230     arch_without_64bit=yes
3231     ;;
3232   i386-*-netbsd*)
3233     arch=i486
3234     cpu=generic
3235     arch_without_sse2=yes
3236     arch_without_64bit=yes
3237     ;;
3238   i386-*-*)
3239     arch=i386
3240     cpu=i386
3241     arch_without_sse2=yes
3242     arch_without_64bit=yes
3243     ;;
3244   i486-*-*)
3245     arch=i486
3246     cpu=i486
3247     arch_without_sse2=yes
3248     arch_without_64bit=yes
3249     ;;
3250   i586-*-*)
3251     arch_without_sse2=yes
3252     arch_without_64bit=yes
3253     case ${target_noncanonical} in
3254       k6_2-*)
3255         arch=k6-2
3256         cpu=k6-2
3257         ;;
3258       k6_3-*)
3259         arch=k6-3
3260         cpu=k6-3
3261         ;;
3262       k6-*)
3263         arch=k6
3264         cpu=k6
3265         ;;
3266       pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3267         arch=pentium-mmx
3268         cpu=pentium-mmx
3269         ;;
3270       *)
3271         arch=pentium
3272         cpu=pentium
3273         ;;
3274     esac
3275     ;;
3276   i686-*-* | i786-*-*)
3277     case ${target_noncanonical} in
3278       znver1-*)
3279         arch=znver1
3280         cpu=znver1
3281         ;;
3282       bdver4-*)
3283         arch=bdver4
3284         cpu=bdver4
3285         ;;
3286       bdver3-*)
3287         arch=bdver3
3288         cpu=bdver3
3289         ;;
3290       bdver2-*)
3291         arch=bdver2
3292         cpu=bdver2
3293         ;;
3294       bdver1-*)
3295         arch=bdver1
3296         cpu=bdver1
3297         ;;
3298       btver1-*)
3299         arch=btver1
3300         cpu=btver1
3301         ;;
3302       btver2-*)
3303         arch=btver2
3304         cpu=btver2
3305         ;;
3306       amdfam10-*|barcelona-*)
3307         arch=amdfam10
3308         cpu=amdfam10
3309         ;;
3310       k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3311         arch=k8-sse3
3312         cpu=k8-sse3
3313         ;;
3314       k8-*|opteron-*|athlon64-*|athlon_fx-*)
3315         arch=k8
3316         cpu=k8
3317         ;;
3318       athlon_xp-*|athlon_mp-*|athlon_4-*)
3319         arch=athlon-4
3320         cpu=athlon-4
3321         arch_without_sse2=yes
3322         arch_without_64bit=yes
3323         ;;
3324       athlon_tbird-*|athlon-*)
3325         arch=athlon
3326         cpu=athlon
3327         arch_without_sse2=yes
3328         ;;
3329       geode-*)
3330         arch=geode
3331         cpu=geode
3332         arch_without_sse2=yes
3333         ;;
3334       pentium2-*)
3335         arch=pentium2
3336         cpu=pentium2
3337         arch_without_sse2=yes
3338         ;;
3339       pentium3-*|pentium3m-*)
3340         arch=pentium3
3341         cpu=pentium3
3342         arch_without_sse2=yes
3343         ;;
3344       pentium4-*|pentium4m-*)
3345         arch=pentium4
3346         cpu=pentium4
3347         ;;
3348       prescott-*)
3349         arch=prescott
3350         cpu=prescott
3351         ;;
3352       nocona-*)
3353         arch=nocona
3354         cpu=nocona
3355         ;;
3356       atom-*)
3357         arch=atom
3358         cpu=atom
3359         ;;
3360       slm-*)
3361         arch=slm
3362         cpu=slm
3363         ;;
3364       core2-*)
3365         arch=core2
3366         cpu=core2
3367         ;;
3368       corei7-*)
3369         arch=corei7
3370         cpu=corei7
3371         ;;
3372       corei7_avx-*)
3373         arch=corei7-avx
3374         cpu=corei7-avx
3375         ;;
3376       pentium_m-*)
3377         arch=pentium-m
3378         cpu=pentium-m
3379         ;;
3380       pentiumpro-*)
3381         arch=pentiumpro
3382         cpu=pentiumpro
3383         arch_without_sse2=yes
3384         ;;
3385       *)
3386         arch=pentiumpro
3387         cpu=generic
3388         arch_without_sse2=yes
3389         arch_without_64bit=yes
3390         ;;
3391     esac
3392     ;;
3393   x86_64-*-*)
3394     case ${target_noncanonical} in
3395       znver1-*)
3396         arch=znver1
3397         cpu=znver1
3398         ;;
3399       bdver4-*)
3400         arch=bdver4
3401         cpu=bdver4
3402         ;;
3403       bdver3-*)
3404         arch=bdver3
3405         cpu=bdver3
3406         ;;
3407       bdver2-*)
3408         arch=bdver2
3409         cpu=bdver2
3410         ;;
3411       bdver1-*)
3412         arch=bdver1
3413         cpu=bdver1
3414         ;;
3415       btver1-*)
3416         arch=btver1
3417         cpu=btver1
3418         ;;
3419       btver2-*)
3420         arch=btver2
3421         cpu=btver2
3422         ;;
3423       amdfam10-*|barcelona-*)
3424         arch=amdfam10
3425         cpu=amdfam10
3426         ;;
3427       k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3428         arch=k8-sse3
3429         cpu=k8-sse3
3430         ;;
3431       k8-*|opteron-*|athlon_64-*)
3432         arch=k8
3433         cpu=k8
3434         ;;
3435       nocona-*)
3436         arch=nocona
3437         cpu=nocona
3438         ;;
3439       atom-*)
3440         arch=atom
3441         cpu=atom
3442         ;;
3443       slm-*)
3444         arch=slm
3445         cpu=slm
3446         ;;
3447       core2-*)
3448         arch=core2
3449         cpu=core2
3450         ;;
3451       corei7-*)
3452         arch=corei7
3453         cpu=corei7
3454         ;;
3455       *)
3456         arch=x86-64
3457         cpu=generic
3458         ;;
3459     esac
3460     ;;
3461 esac
3463 # If there is no $with_cpu option, try to infer one from ${target}.
3464 # This block sets nothing except for with_cpu.
3465 if test x$with_cpu = x ; then
3466   case ${target} in
3467     i[34567]86-*-elfiamcu)
3468       with_cpu=lakemont
3469       ;;
3470     i[34567]86-*-*|x86_64-*-*)
3471       with_cpu=$cpu
3472       ;;
3473     alphaev6[78]*-*-*)
3474       with_cpu=ev67
3475       ;;
3476     alphaev6*-*-*)
3477       with_cpu=ev6
3478       ;;
3479     alphapca56*-*-*)
3480       with_cpu=pca56
3481       ;;
3482     alphaev56*-*-*)
3483       with_cpu=ev56
3484       ;;
3485     alphaev5*-*-*)
3486       with_cpu=ev5
3487       ;;
3488     frv-*-*linux* | frv400-*-*linux*)
3489       with_cpu=fr400
3490       ;;
3491     frv550-*-*linux*)
3492       with_cpu=fr550
3493       ;;
3494     m68k*-*-*)
3495       case "$with_arch" in
3496         "cf")
3497           with_cpu=${default_cf_cpu}
3498           ;;
3499         "" | "m68k")
3500           with_cpu=m${default_m68k_cpu}
3501           ;;
3502       esac
3503       ;;
3504     powerpc*-*-*spe*)
3505       # For SPE, start with 8540, then upgrade to 8548 if
3506       # --enable-e500-double was requested explicitly or if we were
3507       # configured for e500v2.
3508       with_cpu=8540
3509       if test x$enable_e500_double = xyes; then
3510         with_cpu=8548
3511       fi
3512       case ${target_noncanonical} in
3513         e500v2*)
3514           with_cpu=8548
3515           ;;
3516       esac
3517       ;;
3518     sparc*-*-*)
3519       case ${target} in
3520         *-leon-*)
3521           with_cpu=leon
3522           ;;
3523         *-leon[3-9]*)
3524           with_cpu=leon3
3525           ;;
3526         *-leon[3-9]v7*)
3527           with_cpu=leon3v7
3528           ;;
3529         *)
3530           with_cpu="`echo ${target} | sed 's/-.*$//'`"
3531           ;;
3532       esac
3533       ;;
3534     visium-*-*)
3535       with_cpu=gr5
3536       ;;
3537   esac
3539   # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3540   case ${target} in
3541     i[34567]86-*-*|x86_64-*-*)
3542       if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3543         if test x$with_cpu_32 = x; then
3544           with_cpu_32=$with_cpu
3545         fi
3546         if test x$with_cpu_64 = x; then
3547           with_cpu_64=$with_cpu
3548         fi
3549         with_cpu=
3550       fi
3551       ;;
3552   esac
3555 # Support for --with-arch and related options (and a few unrelated options,
3556 # too).
3557 case ${with_arch} in
3558   yes | no)
3559     echo "--with-arch must be passed a value" 1>&2
3560     exit 1
3561     ;;
3562 esac
3564 # If there is no $with_arch option, try to infer one from ${target}.
3565 # This block sets nothing except for with_arch.
3566 if test x$with_arch = x ; then
3567   case ${target} in
3568     i[34567]86-*-darwin*|x86_64-*-darwin*)
3569       # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3570       # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3571       ;;
3572     i[34567]86-*-elfiamcu)
3573       with_arch=lakemont
3574       ;;
3575     i[34567]86-*-*)
3576       # --with-fpmath sets the default ISA to SSE2, which is the same
3577       # ISA supported by Pentium 4.
3578       if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3579         with_arch=$arch
3580       else
3581         with_arch=pentium4
3582       fi
3583       ;;
3584     x86_64-*-*)
3585       with_arch=$arch
3586       ;;
3587     mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3588       with_arch=r5900
3589       ;;
3590     mips*-*-vxworks)
3591       with_arch=mips2
3592       ;;
3593   esac
3595   # Avoid overriding --with-arch-32 and --with-arch-64 values.
3596   case ${target} in
3597     i[34567]86-*-darwin*|x86_64-*-darwin*)
3598       # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3599       # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3600       ;;
3601     i[34567]86-*-*|x86_64-*-*)
3602       if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3603         if test x$with_arch_32 = x; then
3604           with_arch_32=$with_arch
3605         fi
3606         if test x$with_arch_64 = x; then
3607           if test $arch_without_64bit = yes; then
3608             # Set the default 64bit arch to x86-64 if the default arch
3609             # doesn't support 64bit.
3610             with_arch_64=x86-64
3611           else
3612             with_arch_64=$with_arch
3613           fi
3614         fi
3615         with_arch=
3616       elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3617         # Set the default 64bit arch to x86-64 if the default arch
3618         # doesn't support 64bit and we need 64bit ISA.
3619         with_arch_32=$with_arch
3620         with_arch_64=x86-64
3621         with_arch=
3622       fi
3623       ;;
3624   esac
3627 # Infer a default setting for --with-float.
3628 if test x$with_float = x; then
3629   case ${target} in
3630     mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3631       # The R5900 doesn't support 64-bit float.  32-bit float doesn't
3632       # comply with IEEE 754.
3633       with_float=soft
3634       ;;
3635   esac
3638 # Infer a default setting for --with-fpu.
3639 if test x$with_fpu = x; then
3640   case ${target} in
3641     mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3642       # The R5900 FPU only supports single precision.
3643       with_fpu=single
3644       ;;
3645   esac
3648 # Support --with-fpmath.
3649 if test x$with_fpmath != x; then
3650   case ${target} in
3651     i[34567]86-*-* | x86_64-*-*)
3652       case ${with_fpmath} in
3653       avx)
3654         tm_file="${tm_file} i386/avxmath.h"
3655         ;;
3656       sse)
3657         tm_file="${tm_file} i386/ssemath.h"
3658         ;;
3659       *)
3660         echo "Invalid --with-fpmath=$with_fpmath" 1>&2
3661         exit 1
3662         ;;
3663       esac
3664       ;;
3665     *)
3666       echo "--with-fpmath isn't supported for $target." 1>&2
3667       exit 1
3668       ;;
3669   esac
3672 # Similarly for --with-schedule.
3673 if test x$with_schedule = x; then
3674         case ${target} in
3675         hppa1*)
3676                 # Override default PA8000 scheduling model.
3677                 with_schedule=7100LC
3678                 ;;
3679         esac
3682 # Infer a default setting for --with-llsc.
3683 if test x$with_llsc = x; then
3684   case ${target} in
3685     mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3686       # The R5900 doesn't support LL(D) and SC(D).
3687       with_llsc=no
3688       ;;
3689     mips*-*-linux*)
3690       # The kernel emulates LL and SC where necessary.
3691       with_llsc=yes
3692       ;;
3693   esac
3696 # Validate and mark as valid any --with options supported
3697 # by this target.  In order to use a particular --with option
3698 # you must list it in supported_defaults; validating the value
3699 # is optional.  This case statement should set nothing besides
3700 # supported_defaults.
3702 supported_defaults=
3703 case "${target}" in
3704         aarch64*-*-*)
3705                 supported_defaults="abi cpu arch"
3706                 for which in cpu arch; do
3708                         eval "val=\$with_$which"
3709                         base_val=`echo $val | sed -e 's/\+.*//'`
3710                         ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
3712                         if [ $which = arch ]; then
3713                           def=aarch64-arches.def
3714                           pattern=AARCH64_ARCH
3715                         else
3716                           def=aarch64-cores.def
3717                           pattern=AARCH64_CORE
3718                         fi
3720                         ext_mask=AARCH64_CPU_DEFAULT_FLAGS
3722                         # Find the base CPU or ARCH id in aarch64-cores.def or
3723                         # aarch64-arches.def
3724                         if [ x"$base_val" = x ] \
3725                             || grep "^$pattern(\"$base_val\"," \
3726                                     ${srcdir}/config/aarch64/$def \
3727                                     > /dev/null; then
3729                           if [ $which = arch ]; then
3730                                 base_id=`grep "^$pattern(\"$base_val\"," \
3731                                   ${srcdir}/config/aarch64/$def | \
3732                                   sed -e 's/^[^,]*,[    ]*//' | \
3733                                   sed -e 's/,.*$//'`
3734                                 # Extract the architecture flags from aarch64-arches.def
3735                                 ext_mask=`grep "^$pattern(\"$base_val\"," \
3736                                    ${srcdir}/config/aarch64/$def | \
3737                                    sed -e 's/)$//' | \
3738                                    sed -e 's/^.*,//'`
3739                           else
3740                                 base_id=`grep "^$pattern(\"$base_val\"," \
3741                                   ${srcdir}/config/aarch64/$def | \
3742                                   sed -e 's/^[^,]*,[    ]*//' | \
3743                                   sed -e 's/,.*$//'`
3744                           fi
3746                           while [ x"$ext_val" != x ]
3747                           do
3748                                 ext_val=`echo $ext_val | sed -e 's/\+//'`
3749                                 ext=`echo $ext_val | sed -e 's/\+.*//'`
3750                                 base_ext=`echo $ext | sed -e 's/^no//'`
3752                                 if [ x"$base_ext" = x ] \
3753                                     || grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3754                                     ${srcdir}/config/aarch64/aarch64-option-extensions.def \
3755                                     > /dev/null; then
3757                                   ext_canon=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3758                                         ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3759                                         sed -e 's/^[^,]*,[      ]*//' | \
3760                                         sed -e 's/,.*$//'`
3761                                   ext_on=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3762                                         ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3763                                         sed -e 's/^[^,]*,[      ]*[^,]*,[       ]*//' | \
3764                                         sed -e 's/,.*$//' | \
3765                                         sed -e 's/).*$//'`
3766                                   ext_off=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3767                                         ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3768                                         sed -e 's/^[^,]*,[      ]*[^,]*,[       ]*[^,]*,[       ]*//' | \
3769                                         sed -e 's/,.*$//' | \
3770                                         sed -e 's/).*$//'`
3773                                   if [ $ext = $base_ext ]; then
3774                                         # Adding extension
3775                                         ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
3776                                   else
3777                                         # Removing extension
3778                                         ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")"
3779                                   fi
3781                                   true
3782                                 else
3783                                   echo "Unknown extension used in --with-$which=$val" 1>&2
3784                                   exit 1
3785                                 fi
3786                                 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
3787                           done
3789                           ext_mask="(("$ext_mask") << 6)"
3790                           if [ x"$base_id" != x ]; then
3791                                 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
3792                           fi
3793                           true
3794                         else
3795                           echo "Unknown $which used in --with-$which=$val" 1>&2
3796                           exit 1
3797                         fi
3798                 done
3799                 ;;
3801         alpha*-*-*)
3802                 supported_defaults="cpu tune"
3803                 for which in cpu tune; do
3804                         eval "val=\$with_$which"
3805                         case "$val" in
3806                         "" \
3807                         | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
3808                         | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
3809                         | 21264a)
3810                                 ;;
3811                         *)
3812                                 echo "Unknown CPU used in --with-$which=$val" 1>&2
3813                                 exit 1
3814                                 ;;
3815                         esac
3816                 done
3817                 ;;
3819         arc*-*-*)
3820                 supported_defaults="cpu"
3822                 if [ x"$with_cpu" = x ] \
3823                     || grep "^ARC_CPU ($with_cpu," \
3824                        ${srcdir}/config/arc/arc-cpus.def \
3825                        > /dev/null; then
3826                  # Ok
3827                  true
3828                 else
3829                  echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3830                  exit 1
3831                 fi
3832                 ;;
3834         arm*-*-*)
3835                 supported_defaults="arch cpu float tune fpu abi mode tls"
3836                 for which in cpu tune arch; do
3837                         # See if it matches a supported value
3838                         eval "val=\$with_$which"
3839                         if [ x"$val" != x ]; then
3840                           cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
3841                                 -v cmd="chk$which $val" \
3842                                 ${srcdir}/config/arm/arm-cpus.in`
3843                           if [ "$cpu" = "error" ]; then
3844                             echo "Unknown target in --with-$which=$val" 1>&2
3845                             exit 1
3846                           else
3847                             new_val=$cpu
3848                             eval "target_${which}_cname=$new_val"
3849                             echo "For $val real value is $new_val"
3850                           fi
3851                         fi
3852                 done
3854                 case "$with_float" in
3855                 "" \
3856                 | soft | hard | softfp)
3857                         # OK
3858                         ;;
3859                 *)
3860                         echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3861                         exit 1
3862                         ;;
3863                 esac
3865                 # see if --with-fpu matches any of the supported FPUs
3866                 if [ x"$with_fpu" != x ] ; then
3867                   fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
3868                         -v cmd="chkfpu $with_fpu" \
3869                         ${srcdir}/config/arm/arm-cpus.in`
3870                   if [ "$fpu" = "error"]
3871                   then
3872                     echo "Unknown target in --with-$which=$val" 1>&2
3873                     exit 1
3874                   fi
3875                 fi
3877                 case "$with_abi" in
3878                 "" \
3879                 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
3880                         #OK
3881                         ;;
3882                 *)
3883                         echo "Unknown ABI used in --with-abi=$with_abi"
3884                         exit 1
3885                         ;;
3886                 esac
3888                 case "$with_mode" in
3889                 "" \
3890                 | arm | thumb )
3891                         #OK
3892                         ;;
3893                 *)
3894                         echo "Unknown mode used in --with-mode=$with_mode"
3895                         exit 1
3896                         ;;
3897                 esac
3899                 case "$with_tls" in
3900                 "" \
3901                 | gnu | gnu2)
3902                         # OK
3903                         ;;
3904                 *)
3905                         echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
3906                         exit 1
3907                         ;;
3908                 esac
3910                 if test "x$with_arch" != x && test "x$with_cpu" != x; then
3911                         echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\""  1>&2
3912                         exit 1
3913                 fi
3915                 if test "x$with_cpu" != x && test "x$with_tune" != x; then
3916                         echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\""  1>&2
3917                         exit 1
3918                 fi
3920                 # Add extra multilibs
3921                 if test "x$with_multilib_list" != x; then
3922                         arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
3923                         if test "x${arm_multilibs}" != xdefault ; then
3924                                 for arm_multilib in ${arm_multilibs}; do
3925                                         case ${arm_multilib} in
3926                                         aprofile|rmprofile)
3927                                                 tmake_profile_file="arm/t-multilib"
3928                                                 ;;
3929                                         *)
3930                                                 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
3931                                                 exit 1
3932                                                 ;;
3933                                         esac
3934                                 done
3935                         fi
3937                         if test "x${tmake_profile_file}" != x ; then
3938                                 # arm/t-aprofile and arm/t-rmprofile are only
3939                                 # designed to work without any with-cpu,
3940                                 # with-arch, with-mode, with-fpu or with-float
3941                                 # options.
3942                                 if test "x$with_arch" != x \
3943                                     || test "x$with_cpu" != x \
3944                                     || test "x$with_float" != x \
3945                                     || test "x$with_fpu" != x \
3946                                     || test "x$with_mode" != x ; then
3947                                     echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
3948                                     exit 1
3949                                 fi
3950                                 # But pass the default value for float-abi
3951                                 # through to the multilib selector
3952                                 with_float="soft"
3953                                 tmake_file="${tmake_file} ${tmake_profile_file}"
3954                                 TM_MULTILIB_CONFIG="$with_multilib_list"
3955                         fi
3956                 fi
3957                 target_cpu_cname=${target_cpu_cname:-arm6}
3958                 with_cpu=${with_cpu:-$target_cpu_cname}
3959                 ;;
3961         fr*-*-*linux*)
3962                 supported_defaults=cpu
3963                 case "$with_cpu" in
3964                 fr400) ;;
3965                 fr550) ;;
3966                 *)
3967                         echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3968                         exit 1
3969                         ;;
3970                 esac
3971                 ;;
3973         fido-*-* | m68k*-*-*)
3974                 supported_defaults="arch cpu"
3975                 case "$with_arch" in
3976                 "" | "m68k"| "cf")
3977                         m68k_arch_family="$with_arch"
3978                         ;;
3979                 *)
3980                         echo "Invalid --with-arch=$with_arch" 1>&2
3981                         exit 1
3982                         ;;
3983                 esac
3985                 # We always have a $with_cpu setting here.
3986                 case "$with_cpu" in
3987                 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
3988                         m68k_cpu_ident=$with_cpu
3989                         ;;
3990                 "m68020-40")
3991                         m68k_cpu_ident=m68020
3992                         tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
3993                         ;;
3994                 "m68020-60")
3995                         m68k_cpu_ident=m68020
3996                         tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
3997                         ;;
3998                 *)
3999                         # We need the C identifier rather than the string.
4000                         m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
4001                            'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
4002                             $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
4003                                  ${srcdir}/config/m68k/m68k-devices.def`
4004                         if [ x"$m68k_cpu_ident" = x ] ; then
4005                                 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
4006                                 exit 1
4007                         fi
4008                         with_cpu="mcpu=$with_cpu"
4009                         ;;
4010                 esac
4011                 ;;
4013         hppa*-*-*)
4014                 supported_defaults="arch schedule"
4016                 case "$with_arch" in
4017                 "" | 1.0 | 1.1 | 2.0)
4018                         # OK
4019                         ;;
4020                 *)
4021                         echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
4022                         exit 1
4023                         ;;
4024                 esac
4026                 case "$with_schedule" in
4027                 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
4028                         # OK
4029                         ;;
4030                 *)
4031                         echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
4032                         exit 1
4033                         ;;
4034                 esac
4035                 ;;
4037         i[34567]86-*-* | x86_64-*-*)
4038                 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
4039                 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4040                         eval "val=\$with_$which"
4041                         case " $x86_archs " in
4042                         *" ${val} "*)
4043                                 case "${target}" in
4044                                   x86_64-*-*)
4045                                       case "x$which" in
4046                                         *_32)
4047                                                 ;;
4048                                         *)
4049                                                 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
4050                                                 exit 1
4051                                                 ;;
4052                                       esac
4053                                       ;;
4054                                 esac
4055                                 # OK
4056                                 ;;
4057                         *)
4058                                 if test x${val} != x; then
4059                                         case " $x86_64_archs " in
4060                                         *" ${val} "*)
4061                                                 # OK
4062                                                 ;;
4063                                         *)
4064                                                 # Allow $x86_cpus --with-cpu=/--with-tune=
4065                                                 case "x$which" in
4066                                                 xcpu*|xtune*)
4067                                                         case " $x86_cpus " in
4068                                                         *" ${val} "*)
4069                                                                 # OK
4070                                                                 ;;
4071                                                         *)
4072                                                                 echo "Unknown CPU given in --with-$which=$val." 1>&2
4073                                                                 exit 1
4074                                                                 ;;
4075                                                         esac
4076                                                         ;;
4077                                                 *)
4078                                                         echo "Unknown CPU given in --with-$which=$val." 1>&2
4079                                                         exit 1
4080                                                         ;;
4081                                                 esac
4082                                         ;;
4083                                         esac
4084                                 fi
4085                                 ;;
4086                         esac
4087                 done
4088                 ;;
4090         riscv*-*-*)
4091                 supported_defaults="abi arch tune"
4093                 case "${target}" in
4094                 riscv-* | riscv32*) xlen=32 ;;
4095                 riscv64*) xlen=64 ;;
4096                 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4097                 esac
4099                 # Infer arch from --with-arch, --target, and --with-abi.
4100                 case "${with_arch}" in
4101                 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
4102                         # OK.
4103                         ;;
4104                 "")
4105                         # Infer XLEN, but otherwise assume GC.
4106                         case "${with_abi}" in
4107                         ilp32e) with_arch="rv32e" ;;
4108                         ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4109                         lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4110                         *) with_arch="rv${xlen}gc" ;;
4111                         esac
4112                         ;;
4113                 *)
4114                         echo "--with-arch=${with_arch} is not supported.  The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2
4115                         exit 1
4116                         ;;
4117                 esac
4119                 # Make sure --with-abi is valid.  If it was not specified,
4120                 # pick a default based on the ISA, preferring soft-float
4121                 # unless the D extension is present.
4122                 case "${with_abi}" in
4123                 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d)
4124                         ;;
4125                 "")
4126                         case "${with_arch}" in
4127                         rv32*d* | rv32g*) with_abi=ilp32d ;;
4128                         rv32e*) with_abi=ilp32e ;;
4129                         rv32*) with_abi=ilp32 ;;
4130                         rv64*d* | rv64g*) with_abi=lp64d ;;
4131                         rv64*) with_abi=lp64 ;;
4132                         esac
4133                         ;;
4134                 *)
4135                         echo "--with-abi=${with_abi} is not supported" 1>&2
4136                         exit 1
4137                         ;;
4138                 esac
4140                 # Make sure ABI and ISA are compatible.
4141                 case "${with_abi},${with_arch}" in
4142                 ilp32,rv32* | ilp32e,rv32e* \
4143                 | ilp32f,rv32*f* | ilp32f,rv32g* \
4144                 | ilp32d,rv32*d* | ilp32d,rv32g* \
4145                 | lp64,rv64* \
4146                 | lp64f,rv64*f* | lp64f,rv64g* \
4147                 | lp64d,rv64*d* | lp64d,rv64g*)
4148                         ;;
4149                 *)
4150                         echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4151                         exit 1
4152                         ;;
4153                 esac
4155                 # Handle --with-multilib-list.
4156                 if test "x${with_multilib_list}" != xdefault; then
4157                         tm_file="${tm_file} riscv/withmultilib.h"
4158                         tmake_file="${tmake_file} riscv/t-withmultilib"
4160                         case ${with_multilib_list} in
4161                         ilp32 | ilp32f | ilp32d \
4162                         | lp64 | lp64f | lp64d )
4163                                 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}"
4164                                 ;;
4165                         *)
4166                                 echo "--with-multilib-list=${with_multilib_list} not supported."
4167                                 exit 1
4168                         esac
4170                         # Define macros to select the default multilib.
4171                         case ${with_arch} in
4172                         rv32gc)
4173                                 tm_defines="${tm_defines} TARGET_MLIB_ARCH=1"
4174                                 ;;
4175                         rv64gc)
4176                                 tm_defines="${tm_defines} TARGET_MLIB_ARCH=2"
4177                                 ;;
4178                         *)
4179                                 echo "unsupported --with-arch for --with-multilib-list"
4180                                 exit 1
4181                         esac
4182                         case ${with_abi} in
4183                         ilp32)
4184                                 tm_defines="${tm_defines} TARGET_MLIB_ABI=1"
4185                                 ;;
4186                         ilp32f)
4187                                 tm_defines="${tm_defines} TARGET_MLIB_ABI=2"
4188                                 ;;
4189                         ilp32d)
4190                                 tm_defines="${tm_defines} TARGET_MLIB_ABI=3"
4191                                 ;;
4192                         lp64)
4193                                 tm_defines="${tm_defines} TARGET_MLIB_ABI=4"
4194                                 ;;
4195                         lp64f)
4196                                 tm_defines="${tm_defines} TARGET_MLIB_ABI=5"
4197                                 ;;
4198                         lp64d)
4199                                 tm_defines="${tm_defines} TARGET_MLIB_ABI=6"
4200                                 ;;
4201                         *)
4202                                 echo "unsupported --with-abi for --with-multilib"
4203                                 exit 1
4204                         esac
4205                 fi
4206                 ;;
4208         mips*-*-*)
4209                 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"
4211                 case ${with_float} in
4212                 "" | soft | hard)
4213                         # OK
4214                         ;;
4215                 *)
4216                         echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4217                         exit 1
4218                         ;;
4219                 esac
4221                 case ${with_fpu} in
4222                 "" | single | double)
4223                         # OK
4224                         ;;
4225                 *)
4226                         echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4227                         exit 1
4228                         ;;
4229                 esac
4231                 case ${with_nan} in
4232                 "" | 2008 | legacy)
4233                         # OK
4234                         ;;
4235                 *)
4236                         echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4237                         exit 1
4238                         ;;
4239                 esac
4241                 case ${with_fp_32} in
4242                 "" | 32 | xx | 64)
4243                         # OK
4244                         ;;
4245                 *)
4246                         echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4247                         exit 1
4248                         ;;
4249                 esac
4251                 case ${with_odd_spreg_32} in
4252                 yes)
4253                         with_odd_spreg_32="odd-spreg"
4254                         ;;
4255                 no)
4256                         with_odd_spreg_32="no-odd-spreg"
4257                         ;;
4258                 "")
4259                         # OK
4260                         ;;
4261                 *)
4262                         echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4263                         exit 1
4264                         ;;
4265                 esac
4267                 case ${with_abi} in
4268                 "" | 32 | o64 | n32 | 64 | eabi)
4269                         # OK
4270                         ;;
4271                 *)
4272                         echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
4273                         exit 1
4274                         ;;
4275                 esac
4277                 case ${with_divide} in
4278                 "" | breaks | traps)
4279                         # OK
4280                         ;;
4281                 *)
4282                         echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4283                         exit 1
4284                         ;;
4285                 esac
4287                 case ${with_llsc} in
4288                 yes)
4289                         with_llsc=llsc
4290                         ;;
4291                 no)
4292                         with_llsc="no-llsc"
4293                         ;;
4294                 "")
4295                         # OK
4296                         ;;
4297                 *)
4298                         echo "Unknown llsc type used in --with-llsc" 1>&2
4299                         exit 1
4300                         ;;
4301                 esac
4303                 case ${with_mips_plt} in
4304                 yes)
4305                         with_mips_plt=plt
4306                         ;;
4307                 no)
4308                         with_mips_plt=no-plt
4309                         ;;
4310                 "")
4311                         ;;
4312                 *)
4313                         echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4314                         exit 1
4315                         ;;
4316                 esac
4318                 case ${with_synci} in
4319                 yes)
4320                         with_synci=synci
4321                         ;;
4322                 no)
4323                         with_synci=no-synci
4324                         ;;
4325                 "")
4326                         ;;
4327                 *)
4328                         echo "Unknown synci type used in --with-synci" 1>&2
4329                         exit 1
4330                         ;;
4331                 esac
4333                 case ${with_lxc1_sxc1} in
4334                 yes)
4335                         with_lxc1_sxc1=lxc1-sxc1
4336                         ;;
4337                 no)
4338                         with_lxc1_sxc1=no-lxc1-sxc1
4339                         ;;
4340                 "")
4341                         ;;
4342                 *)
4343                         echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4344                         exit 1
4345                         ;;
4346                 esac
4348                 case ${with_madd4} in
4349                 yes)
4350                         with_madd4=madd4
4351                         ;;
4352                 no)
4353                         with_madd4=no-madd4
4354                         ;;
4355                 "")
4356                         ;;
4357                 *)
4358                         echo "Unknown madd4 type used in --with-madd4" 1>&2
4359                         exit 1
4360                         ;;
4361                 esac
4362                 ;;
4364         nds32*-*-*)
4365                 supported_defaults="arch cpu nds32_lib float fpu_config"
4367                 # process --with-arch
4368                 case "${with_arch}" in
4369                 "" | v3 )
4370                         tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4371                         ;;
4372                 v2 | v2j | v3m)
4373                         # OK
4374                         tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4375                         ;;
4376                 v3f)
4377                         tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
4378                         ;;
4379                 v3s)
4380                         tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
4382                         ;;
4383                 *)
4384                         echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
4385                         exit 1
4386                         ;;
4387                 esac
4389                 case "${with_cpu}" in
4390                 "")
4391                         with_cpu=n9
4392                         ;;
4393                 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15)
4394                         # OK
4395                         ;;
4396                 *)
4397                         echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2
4398                         exit 1
4399                         ;;
4400                 esac
4402                 # process --with-nds32-lib
4403                 case "${with_nds32_lib}" in
4404                 "")
4405                         # the default library is newlib
4406                         with_nds32_lib=newlib
4407                         tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4408                         ;;
4409                 newlib)
4410                         # OK
4411                         tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4412                         ;;
4413                 mculib)
4414                         # OK
4415                         # for the arch=v3f or arch=v3s under mculib toolchain,
4416                         # we would like to set -fno-math-errno as default
4417                         case "${with_arch}" in
4418                         v3f | v3s)
4419                                 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
4420                                 ;;
4421                         esac
4422                         ;;
4423                 glibc)
4424                         # OK
4425                         tm_defines="${tm_defines} TARGET_DEFAULT_TLSDESC_TRAMPOLINE=1"
4426                         ;;
4427                 uclibc)
4428                         ;;
4429                 *)
4430                         echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
4431                         exit 1
4432                         ;;
4433                 esac
4435                 # process --with-float
4436                 case "${with_float}" in
4437                 "" | soft | hard)
4438                         # OK
4439                         ;;
4440                 *)
4441                         echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
4442                         exit 1
4443                         ;;
4444                 esac
4446                 # process --with-config-fpu
4447                 case "${with_config_fpu}" in
4448                 "" | 0 | 1 | 2 | 3)
4449                         # OK
4450                         ;;
4451                 *)
4452                         echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
4453                         exit 1
4454                         ;;
4455                 esac
4458                 ;;
4459         nios2*-*-*)
4460                 supported_defaults="arch"
4461                         case "$with_arch" in
4462                         "" | r1 | r2)
4463                                 # OK
4464                                 ;;
4465                         *)
4466                                 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
4467                                 exit 1
4468                                 ;;
4469                         esac
4470                 ;;
4472         powerpc*-*-* | rs6000-*-*)
4473                 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
4475                 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4476                         eval "val=\$with_$which"
4477                         case ${val} in
4478                         default32 | default64)
4479                                 case $which in
4480                                 cpu | tune)
4481                                         ;;
4482                                 *)
4483                                         echo "$val only valid for --with-cpu and --with-tune." 1>&2
4484                                         exit 1
4485                                         ;;
4486                                 esac
4487                                 with_which="with_$which"
4488                                 eval $with_which=
4489                                 ;;
4490                         405cr)
4491                                 tm_defines="${tm_defines} CONFIG_PPC405CR"
4492                                 eval "with_$which=405"
4493                                 ;;
4494                         "" | common | native \
4495                         | power[3456789] | power5+ | power6x \
4496                         | powerpc | powerpc64 | powerpc64le \
4497                         | rs64 \
4498                         | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
4499                         | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
4500                         | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
4501                         | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
4502                         | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
4503                                 # OK
4504                                 ;;
4505                         *)
4506                                 echo "Unknown cpu used in --with-$which=$val." 1>&2
4507                                 exit 1
4508                                 ;;
4509                         esac
4510                 done
4512                 case "$with_abi" in
4513                 "" | elfv1 | elfv2 )
4514                         #OK
4515                         ;;
4516                 *)
4517                         echo "Unknown ABI used in --with-abi=$with_abi"
4518                         exit 1
4519                         ;;
4520                 esac
4522                 if test "x$with_advance_toolchain" != x; then
4523                     if test -d "/opt/$with_advance_toolchain/." -a \
4524                         -d "/opt/$with_advance_toolchain/bin/." -a \
4525                         -d "/opt/$with_advance_toolchain/include/."; then
4527                         tm_file="$tm_file ./advance-toolchain.h"
4528                         (at="/opt/$with_advance_toolchain"
4529                          echo "/* Use Advance Toolchain $at */"
4530                          echo
4531                          echo "#undef  LINK_OS_EXTRA_SPEC32"
4532                          echo "#define LINK_OS_EXTRA_SPEC32" \
4533                               "\"%(link_os_new_dtags)" \
4534                               "-rpath $prefix/lib -rpath $at/lib" \
4535                               "-L $prefix/lib -L $at/lib\""
4536                          echo
4537                          echo "#undef  LINK_OS_EXTRA_SPEC64"
4538                          echo "#define LINK_OS_EXTRA_SPEC64" \
4539                               "\"%(link_os_new_dtags)" \
4540                               "-rpath $prefix/lib64 -rpath $at/lib64" \
4541                               "-L $prefix/lib64 -L $at/lib64\""
4542                          echo
4543                          echo "#undef  LINK_OS_NEW_DTAGS_SPEC"
4544                          echo "#define LINK_OS_NEW_DTAGS_SPEC" \
4545                               "\"--enable-new-dtags\""
4546                          echo
4547                          echo "#undef  DYNAMIC_LINKER_PREFIX"
4548                          echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
4549                          echo
4550                          echo "#undef  MD_EXEC_PREFIX"
4551                          echo "#define MD_EXEC_PREFIX \"$at/bin/\""
4552                          echo
4553                          echo "#undef  MD_STARTFILE_PREFIX"
4554                          echo "#define MD_STARTFILE_PREFIX \"$at/lib/\"") \
4555                             > advance-toolchain.h
4556                     else
4557                         echo "Unknown advance-toolchain $with_advance_toolchain"
4558                         exit 1
4559                     fi
4560                 fi
4562                 # Set up the default long double format if the user changed it.
4563                 if test x$with_long_double_format = xieee; then
4564                     tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
4566                 elif test x$with_long_double_format = xibm; then
4567                     tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
4568                 fi
4569                 ;;
4571         s390*-*-*)
4572                 supported_defaults="arch mode tune"
4574                 for which in arch tune; do
4575                         eval "val=\$with_$which"
4576                         case ${val} in
4577                         "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12)
4578                                 # OK
4579                                 ;;
4580                         *)
4581                                 echo "Unknown cpu used in --with-$which=$val." 1>&2
4582                                 exit 1
4583                                 ;;
4584                         esac
4585                 done
4587                 case ${with_mode} in
4588                 "" | esa | zarch)
4589                         # OK
4590                         ;;
4591                 *)
4592                         echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
4593                         exit 1
4594                         ;;
4595                 esac
4596                 ;;
4598         sh[123456ble]*-*-* | sh-*-*)
4599                 supported_defaults="cpu"
4600                 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
4601                 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
4602                         # OK
4603                         ;;
4604                 m2a | m2a-single | m2a-single-only | m2a-nofpu)
4605                         ;;
4606                 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
4607                         ;;
4608                 *)
4609                         echo "Unknown CPU used in --with-cpu=$with_cpu, known values:"  1>&2
4610                         echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
4611                         echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
4612                         echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
4613                         exit 1
4614                         ;;
4615                 esac
4616                 ;;
4617         sparc*-*-*)
4618                 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
4620                 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4621                         eval "val=\$with_$which"
4622                         case ${val} in
4623                         "" | sparc | sparcv9 | sparc64 \
4624                         | v7 | cypress \
4625                         | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
4626                         | sparclite | f930 | f934 | sparclite86x \
4627                         | sparclet | tsc701 \
4628                         | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
4629                         | niagara3 | niagara4 | niagara7 | m8)
4630                                 # OK
4631                                 ;;
4632                         *)
4633                                 echo "Unknown cpu used in --with-$which=$val" 1>&2
4634                                 exit 1
4635                                 ;;
4636                         esac
4637                 done
4639                 case ${with_float} in
4640                 "" | soft | hard)
4641                         # OK
4642                         ;;
4643                 *)
4644                         echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4645                         exit 1
4646                         ;;
4647                 esac
4648                 ;;
4650         spu-*-*)
4651                 supported_defaults="arch tune"
4653                 for which in arch tune; do
4654                         eval "val=\$with_$which"
4655                         case ${val} in
4656                         "" | cell | celledp)
4657                                 # OK
4658                                 ;;
4659                         *)
4660                                 echo "Unknown cpu used in --with-$which=$val." 1>&2
4661                                 exit 1
4662                                 ;;
4663                         esac
4664                 done
4665                 ;;
4667         tic6x-*-*)
4668                 supported_defaults="arch"
4670                 case ${with_arch} in
4671                 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
4672                         # OK
4673                         ;;
4674                 *)
4675                         echo "Unknown arch used in --with-arch=$with_arch." 1>&2
4676                         exit 1
4677                         ;;
4678                 esac
4679                 ;;
4681         v850*-*-*)
4682                 supported_defaults=cpu
4683                 case ${with_cpu} in
4684                 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
4685                         # OK
4686                         ;;
4687                 *)
4688                         echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4689                         exit 1
4690                         ;;
4691                 esac
4692                 ;;
4693         visium-*-*)
4694                 supported_defaults="cpu"
4695                 case $with_cpu in
4696                   "" | gr5 | gr6)
4697                         ;;
4698                   *)    echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4699                         exit 1
4700                         ;;
4701                 esac
4702                 ;;
4703 esac
4705 # Set some miscellaneous flags for particular targets.
4706 target_cpu_default2=
4707 case ${target} in
4708         aarch64*-*-*)
4709                 if test x"$target_cpu_cname" != x
4710                 then
4711                         target_cpu_default2=$target_cpu_cname
4712                 fi
4713                 ;;
4715         arm*-*-*)
4716                 if test x$with_cpu = x
4717                 then
4718                         echo "Don't know the target cpu" 1>&2
4719                         exit 1
4720                 else
4721                         target_cpu_default2="\\\"$with_cpu\\\""
4722                 fi
4723                 ;;
4725         hppa*-*-*)
4726                 if test x$gas = xyes
4727                 then
4728                         target_cpu_default2="MASK_GAS"
4729                 fi
4730                 ;;
4732         fido*-*-* | m68k*-*-*)
4733                 target_cpu_default2=$m68k_cpu_ident
4734                 tmake_file="m68k/t-opts $tmake_file"
4735                 if [ x"$m68k_arch_family" != x ]; then
4736                         tmake_file="m68k/t-$m68k_arch_family $tmake_file"
4737                 fi
4738                 ;;
4740         i[34567]86-*-darwin* | x86_64-*-darwin*)
4741                 ;;
4742         i[34567]86-*-linux* | x86_64-*-linux*)
4743                 extra_objs="${extra_objs} cet.o"
4744                 tmake_file="$tmake_file i386/t-linux i386/t-cet"
4745                 ;;
4746         i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
4747                 tmake_file="$tmake_file i386/t-kfreebsd"
4748                 ;;
4749         i[34567]86-*-gnu*)
4750                 tmake_file="$tmake_file i386/t-gnu"
4751                 ;;
4752         i[34567]86-*-msdosdjgpp*)
4753                 tmake_file="${tmake_file} i386/t-djgpp"
4754                 ;;
4755         i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
4756                 ;;
4757         i[34567]86-*-cygwin* | x86_64-*-cygwin*)
4758                 ;;
4759         i[34567]86-*-mingw* | x86_64-*-mingw*)
4760                 ;;
4761         i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
4762                 ;;
4763         i[34567]86-*-freebsd* | x86_64-*-freebsd*)
4764                 ;;
4765         ia64*-*-linux*)
4766                 ;;
4768         mips*-*-*)
4769                 if test x$gnu_ld = xyes
4770                 then
4771                         target_cpu_default2="MASK_SPLIT_ADDRESSES"
4772                 fi
4773                 case ${target} in
4774                         mips*el-*-*)
4775                                 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
4776                                 ;;
4777                 esac
4778                 if test x$with_arch != x; then
4779                         default_mips_arch=$with_arch
4780                 fi
4781                 if test x$with_abi != x; then
4782                         default_mips_abi=$with_abi
4783                 fi
4784                 case ${default_mips_arch} in
4785                     mips1)    tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
4786                     mips2)    tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
4787                     mips3)    tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
4788                     mips4)    tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
4789                     mips32)   tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
4790                     mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
4791                     mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=37" ;;
4792                     mips64)   tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
4793                     mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
4794                     mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=69" ;;
4795                 esac
4796                 case ${default_mips_abi} in
4797                     32)   tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
4798                     o64)  tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
4799                     n32)  tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
4800                     64)   tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
4801                     eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
4802                 esac
4803                 tmake_file="mips/t-mips $tmake_file"
4804                 ;;
4806         powerpc*-*-* | rs6000-*-*)
4807                 # FIXME: The PowerPC port uses the value set at compile time,
4808                 # although it's only cosmetic.
4809                 if test "x$with_cpu" != x
4810                 then
4811                         target_cpu_default2="\\\"$with_cpu\\\""
4812                 fi
4813                 out_file="${cpu_type}/${cpu_type}.c"
4814                 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
4815                 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
4816                 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
4817                 ;;
4819         sh[123456ble]*-*-* | sh-*-*)
4820                 c_target_objs="${c_target_objs} sh-c.o"
4821                 cxx_target_objs="${cxx_target_objs} sh-c.o"
4822                 ;;
4824         sparc*-*-*)
4825                 # Some standard aliases.
4826                 case x$with_cpu in
4827                 xsparc)
4828                         with_cpu=v7
4829                         ;;
4830                 xsparcv9 | xsparc64)
4831                         with_cpu=v9
4832                         ;;
4833                 esac
4835                 if test x$with_tune = x ; then
4836                       case ${target} in
4837                       *-leon-*)
4838                           with_tune=leon
4839                           ;;
4840                       *-leon[3-9]*)
4841                           with_tune=leon3
4842                           ;;
4843                       esac
4844                 fi
4846                 # The SPARC port checks this value at compile-time.
4847                 target_cpu_default2="TARGET_CPU_$with_cpu"
4848                 ;;
4850         v850*-*-*)
4851                 case "x$with_cpu" in
4852                 x)
4853                         ;;
4854                 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
4855                         target_cpu_default2="TARGET_CPU_$with_cpu"
4856                         ;;
4857                 xv850es)
4858                         target_cpu_default2="TARGET_CPU_v850e1"
4859                         ;;
4860                 esac
4861                 ;;
4862         visium-*-*)
4863                 target_cpu_default2="TARGET_CPU_$with_cpu"
4864                 ;;
4865 esac
4868 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"
4869 for option in $all_defaults
4871         eval "val=\$with_"`echo $option | sed s/-/_/g`
4872         if test -n "$val"; then
4873                 case " $supported_defaults " in
4874                 *" $option "*)
4875                         ;;
4876                 *)
4877                         echo "This target does not support --with-$option." 2>&1
4878                         echo "Valid --with options are: $supported_defaults" 2>&1
4879                         exit 1
4880                         ;;
4881                 esac
4883                 if test "x$t" = x
4884                 then
4885                         t="{ \"$option\", \"$val\" }"
4886                 else
4887                         t="${t}, { \"$option\", \"$val\" }"
4888                 fi
4889         fi
4890 done
4892 if test "x$t" = x
4893 then
4894         configure_default_options="{ { NULL, NULL} }"
4895 else
4896         configure_default_options="{ ${t} }"
4899 if test "$target_cpu_default2" != ""
4900 then
4901         if test "$target_cpu_default" != ""
4902         then
4903                 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
4904         else
4905                 target_cpu_default=$target_cpu_default2
4906         fi
4909 case ${target} in
4910 i[34567]86-*-* | x86_64-*-*)
4911         if test x$enable_as_accelerator = xyes; then
4912                 extra_programs="mkoffload\$(exeext)"
4913         fi
4914         ;;
4915 esac