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