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