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