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