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