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