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