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