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