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