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