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