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