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