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