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