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