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