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