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