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