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