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