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