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