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