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