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