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