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