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