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