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