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