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