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