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