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