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