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