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