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