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