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