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