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