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