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