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