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