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