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