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