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