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