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