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