]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config.gcc
Allow automatics in equivalences
[thirdparty/gcc.git] / gcc / config.gcc
CommitLineData
973f8bf3 1# GCC target-specific configuration file.
fbd26352 2# Copyright (C) 1997-2019 Free Software Foundation, Inc.
bb607926 3
f12b58b3 4#This file is part of GCC.
bb607926 5
f12b58b3 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
8c4c00c1 8#Software Foundation; either version 3, or (at your option) any later
f12b58b3 9#version.
bb607926 10
f12b58b3 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.
bb607926 15
16#You should have received a copy of the GNU General Public License
8c4c00c1 17#along with GCC; see the file COPYING3. If not see
18#<http://www.gnu.org/licenses/>.
bb607926 19
973f8bf3 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.
bb607926 25
894a47b4 26# When you change the cases in the OS or target switches, consider
27# updating ../libgcc/config.host also.
28
09c6646e 29# This file switches on the shell variable ${target}, and also uses the
bb607926 30# following shell variables:
31#
32# with_* Various variables as set by configure.
33#
334c8279 34# enable_threads Either the name, yes or no depending on whether
bb607926 35# threads support was requested.
36#
bc5ae993 37# default_use_cxa_atexit
430e8f92 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.
bc5ae993 46#
1c6e0788 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#
bb607926 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#
09c6646e 66# cpu_type The name of the cpu, if different from the first
67# chunk of the canonical target name.
bb607926 68#
8d4f8d46 69# tm_defines List of target macros to define for all compilations.
70#
bb607926 71# tm_file A list of target macro files, if different from
277773bd 72# "$cpu_type/$cpu_type.h". Usually it's constructed
73# per target in a way like this:
91276c47 74# tm_file="${tm_file} dbxelf.h elfos.h ${cpu_type.h}/elf.h"
277773bd 75# Note that the preferred order is:
76# - specific target header "${cpu_type}/${cpu_type.h}"
04d9b51b 77# - generic headers like dbxelf.h elfos.h, etc.
277773bd 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}.
bb607926 81#
b4b98cc1 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#
bb607926 86# tm_p_file Location of file with declarations for functions
87# in $out_file.
88#
03385ed3 89# tm_d_file A list of headers with definitions of target hook
90# macros for the D compiler.
91#
bb607926 92# out_file The name of the machine description C support
93# file, if different from "$cpu_type/$cpu_type.c".
94#
3e87b980 95# common_out_file The name of the source file for code shared between
96# the compiler proper and the driver.
97#
bb607926 98# md_file The name of the machine-description file, if
99# different from "$cpu_type/$cpu_type.md".
100#
101# tmake_file A list of machine-description-specific
102# makefile-fragments, if different from
103# "$cpu_type/t-$cpu_type".
104#
b5ccaa7b 105# extra_modes The name of the file containing a list of extra
106# machine modes, if necessary and different from
107# "$cpu_type/$cpu_type-modes.def".
108#
bb607926 109# extra_objs List of extra objects that should be linked into
110# the compiler proper (cc1, cc1obj, cc1plus)
111# depending on target.
112#
69eb04f7 113# extra_gcc_objs List of extra objects that should be linked into
114# the compiler driver (gcc) depending on target.
115#
bb607926 116# extra_headers List of used header files from the directory
b965afcd 117# config/${cpu_type}.
bb607926 118#
ac0366be 119# user_headers_inc_next_pre
120# List of header file names of internal gcc header
121# files, which should be prefixed by an include_next.
122# user_headers_inc_next_post
123# List of header file names of internal gcc header
124# files, which should be postfixed by an include_next.
50388ca3 125# use_gcc_tgmath If set, add tgmath.h to the list of used header
126# files.
127#
f3449a3c 128# use_gcc_stdint If "wrap", install a version of stdint.h that
129# wraps the system's copy for hosted compilations;
130# if "provide", provide a version of systems without
131# such a system header; otherwise "none", do not
132# provide such a header at all.
133#
7151decb 134# extra_programs List of extra executables compiled for this target
135# machine, used when linking.
bb607926 136#
ff05e09e 137# extra_options List of target-dependent .opt files.
138#
424da949 139# c_target_objs List of extra target-dependent objects that be
8daa9e98 140# linked into the C compiler only.
582b17a6 141#
424da949 142# cxx_target_objs List of extra target-dependent objects that be
8daa9e98 143# linked into the C++ compiler only.
582b17a6 144#
03385ed3 145# d_target_objs List of extra target-dependent objects that be
146# linked into the D compiler only.
147#
32006f36 148# fortran_target_objs List of extra target-dependent objects that be
149# linked into the fortran compiler only.
150#
eb1bd38b 151# target_gtfiles List of extra source files with type information.
152#
bb607926 153# xm_defines List of macros to define when compiling for the
154# target machine.
155#
156# xm_file List of files to include when compiling for the
157# target machine.
158#
159# use_collect2 Set to yes or no, depending on whether collect2
160# will be used.
161#
162# target_cpu_default Set to override the default target model.
163#
bb607926 164# gdb_needs_out_file_path
165# Set to yes if gdb needs a dir command with
166# `dirname $out_file`.
167#
bb607926 168# thread_file Set to control which thread package to use.
169#
170# gas Set to yes or no depending on whether the target
171# system normally uses GNU as.
805e22b2 172#
7dd97ab6 173# configure_default_options
174# Set to an initializer for configure_default_options
175# in configargs.h, based on --with-cpu et cetera.
638454a1 176#
177# native_system_header_dir
178# Where system header files are found for this
179# target. This defaults to /usr/include. If
180# the --with-sysroot configure option or the
181# --sysroot command line option is used this
182# will be relative to the sysroot.
4eb5a747 183# target_type_format_char
184# The default character to be used for formatting
185# the attribute in a
186# .type symbol_name, ${t_t_f_c}<property>
187# directive.
bb607926 188
189# The following variables are used in each case-construct to build up the
190# outgoing variables:
191#
bb607926 192# gnu_ld Set to yes or no depending on whether the target
193# system normally uses GNU ld.
c94b1d0e 194#
195# target_has_targetcm Set to yes or no depending on whether the target
196# has its own definition of targetcm.
3e87b980 197#
198# target_has_targetm_common Set to yes or no depending on whether the
199# target has its own definition of targetm_common.
03385ed3 200#
201# target_has_targetdm Set to yes or no depending on whether the target
202# has its own definition of targetdm.
bb607926 203
204out_file=
3e87b980 205common_out_file=
bb607926 206tmake_file=
207extra_headers=
ac0366be 208user_headers_inc_next_pre=
209user_headers_inc_next_post=
50388ca3 210use_gcc_tgmath=yes
f3449a3c 211use_gcc_stdint=none
bb607926 212extra_programs=
213extra_objs=
bb607926 214extra_gcc_objs=
ff05e09e 215extra_options=
8daa9e98 216c_target_objs=
217cxx_target_objs=
03385ed3 218d_target_objs=
32006f36 219fortran_target_objs=
c94b1d0e 220target_has_targetcm=no
218e3e4e 221target_has_targetm_common=yes
03385ed3 222target_has_targetdm=no
8d4f8d46 223tm_defines=
bb607926 224xm_defines=
bb607926 225# Set this to force installation and use of collect2.
226use_collect2=
227# Set this to override the default target model.
228target_cpu_default=
bb607926 229# Set this if gdb needs a dir command with `dirname $out_file`
230gdb_needs_out_file_path=
bb607926 231# Set this to control which thread package will be used.
232thread_file=
233# Reinitialize these from the flag values every loop pass, since some
234# configure entries modify them.
235gas="$gas_flag"
236gnu_ld="$gnu_ld_flag"
bc5ae993 237default_use_cxa_atexit=no
1c6e0788 238default_gnu_indirect_function=no
22ac052b 239target_gtfiles=
ed2b8f56 240need_64bit_isa=
638454a1 241native_system_header_dir=/usr/include
4eb5a747 242target_type_format_char='@'
bb607926 243
b696fe80 244# Don't carry these over build->host->target. Please.
245xm_file=
246md_file=
247
c2527f80 248# Obsolete configurations.
a7359760 249case ${target} in
0fd03648 250 spu*-*-* \
a7d3017a 251 | tile*-*-* \
a7359760 252 )
253 if test "x$enable_obsolete" != xyes; then
254 echo "*** Configuration ${target} is obsolete." >&2
255 echo "*** Specify --enable-obsolete to build it anyway." >&2
256 echo "*** Support will be REMOVED in the next major release of GCC," >&2
257 echo "*** unless a maintainer comes forward." >&2
258 exit 1
259 fi;;
260esac
c2527f80 261
ece7f381 262# Unsupported targets list. Do not put an entry in this list unless
263# it would otherwise be caught by a more permissive pattern. The list
264# should be in alphabetical order.
09c6646e 265case ${target} in
295f5c5c 266 # Avoid special cases that are not obsolete
267 arm*-*-*eabi* \
268 )
269 ;;
270 arm*-wince-pe* \
271 | arm*-*-ecos-elf \
272 | arm*-*-elf \
295f5c5c 273 | arm*-*-linux* \
295f5c5c 274 | arm*-*-uclinux* \
275 | i[34567]86-go32-* \
ece7f381 276 | i[34567]86-*-go32* \
17b3d2a8 277 | m68k-*-uclinuxoldabi* \
ece7f381 278 | mips64orion*-*-rtems* \
f2397fc4 279 | pdp11-*-bsd \
edc8c70d 280 | powerpc*-*-linux*paired* \
b31d0348 281 | powerpc*-*-*spe* \
ece7f381 282 | sparc-hal-solaris2* \
283 | thumb-*-* \
0d7517d0 284 | *-*-freebsd[12] | *-*-freebsd[1234].* \
ea722d26 285 | *-*-freebsd*aout* \
6af9f7ea 286 | *-*-linux*aout* \
ece7f381 287 | *-*-linux*coff* \
6af9f7ea 288 | *-*-linux*libc1* \
ece7f381 289 | *-*-linux*oldld* \
290 | *-*-rtemsaout* \
291 | *-*-rtemscoff* \
e8287058 292 | *-*-solaris2 \
3efb5d22 293 | *-*-solaris2.[0-9] \
294 | *-*-solaris2.[0-9].* \
0fd03648 295 | *-*-solaris2.10* \
264a5d11 296 | *-*-sysv* \
3598ba3d 297 | vax-*-vms* \
ece7f381 298 )
09c6646e 299 echo "*** Configuration ${target} not supported" 1>&2
ece7f381 300 exit 1
301 ;;
302esac
303
bb607926 304# Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
83287f80 305# updated in each machine entry. Also set default extra_headers for some
306# machines.
bb607926 307tm_p_file=
09c6646e 308cpu_type=`echo ${target} | sed 's/-.*$//'`
cc5ffbb8 309cpu_is_64bit=
09c6646e 310case ${target} in
85c84d5c 311m32c*-*-*)
312 cpu_type=m32c
313 tmake_file=m32c/t-m32c
393a753d 314 target_has_targetm_common=no
85c84d5c 315 ;;
16878cba 316aarch64*-*-*)
317 cpu_type=aarch64
79cab9c6 318 extra_headers="arm_fp16.h arm_neon.h arm_acle.h"
26db5325 319 c_target_objs="aarch64-c.o"
320 cxx_target_objs="aarch64-c.o"
03385ed3 321 d_target_objs="aarch64-d.o"
15b17909 322 extra_objs="aarch64-builtins.o aarch-common.o cortex-a57-fma-steering.o aarch64-speculation.o falkor-tag-collision-avoidance.o aarch64-bti-insert.o"
99f33b7c 323 target_gtfiles="\$(srcdir)/config/aarch64/aarch64-builtins.c"
16878cba 324 target_has_targetm_common=yes
325 ;;
bb607926 326alpha*-*-*)
327 cpu_type=alpha
d1e5a65f 328 extra_options="${extra_options} g.opt"
bb607926 329 ;;
d62c0949 330amdgcn*)
331 cpu_type=gcn
332 use_gcc_stdint=wrap
333 ;;
1acdfc69 334am33_2.0-*-linux*)
335 cpu_type=mn10300
336 ;;
3c867e46 337arc*-*-*)
338 cpu_type=arc
f525bed6 339 c_target_objs="arc-c.o"
340 cxx_target_objs="arc-c.o"
2d293522 341 extra_options="${extra_options} arc/arc-tables.opt g.opt"
5fbceedd 342 extra_headers="arc-simd.h"
3c867e46 343 ;;
6e421549 344arm*-*-*)
345 cpu_type=arm
d6504d76 346 extra_objs="arm-builtins.o aarch-common.o"
0120ae30 347 extra_headers="mmintrin.h arm_neon.h arm_acle.h arm_fp16.h arm_cmse.h"
4eb5a747 348 target_type_format_char='%'
baa1a726 349 c_target_objs="arm-c.o"
350 cxx_target_objs="arm-c.o"
03385ed3 351 d_target_objs="arm-d.o"
9a4818f1 352 extra_options="${extra_options} arm/arm-tables.opt"
d6504d76 353 target_gtfiles="\$(srcdir)/config/arm/arm-builtins.c"
6e421549 354 ;;
33169f97 355avr-*-*)
356 cpu_type=avr
357 c_target_objs="avr-c.o"
358 cxx_target_objs="avr-c.o"
359 ;;
9e6a0967 360bfin*-*)
361 cpu_type=bfin
362 ;;
9b9e3455 363crisv32-*)
364 cpu_type=cris
365 ;;
de6e318c 366frv*) cpu_type=frv
d1e5a65f 367 extra_options="${extra_options} g.opt"
de6e318c 368 ;;
b6616c9c 369ft32*) cpu_type=ft32
370 target_has_targetm_common=no
371 ;;
be52b6d8 372moxie*) cpu_type=moxie
218e3e4e 373 target_has_targetm_common=no
be52b6d8 374 ;;
278e2fd1 375fido-*-*)
376 cpu_type=m68k
377 extra_headers=math-68881.h
d078aadd 378 extra_options="${extra_options} m68k/m68k-tables.opt"
278e2fd1 379 ;;
bb607926 380i[34567]86-*-*)
381 cpu_type=i386
46f8e3b0 382 c_target_objs="i386-c.o"
383 cxx_target_objs="i386-c.o"
03385ed3 384 d_target_objs="i386-d.o"
0c141fc4 385 extra_objs="x86-tune-sched.o x86-tune-sched-bd.o x86-tune-sched-atom.o x86-tune-sched-core.o i386-options.o i386-builtins.o i386-expand.o i386-features.o"
dfc6c66c 386 target_gtfiles="\$(srcdir)/config/i386/i386-builtins.c \$(srcdir)/config/i386/i386-expand.c \$(srcdir)/config/i386/i386-options.c"
bca226ea 387 extra_options="${extra_options} fused-madd.opt"
daf03e2f 388 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
f25d51c3 389 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
2f212aae 390 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
18525343 391 immintrin.h x86intrin.h avxintrin.h xopintrin.h
87c62cba 392 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
2339767f 393 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
e2098065 394 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
395 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
396 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
fc975a40 397 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
2ed44428 398 shaintrin.h clflushoptintrin.h xsavecintrin.h
9f29061a 399 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
8a12b665 400 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
afee0628 401 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
37d0f067 402 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
e0aa57d6 403 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
957d28c3 404 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
c3c0b6e9 405 gfniintrin.h cet.h avx512vbmi2intrin.h
97c6694f 406 avx512vbmi2vlintrin.h avx512vnniintrin.h
297f4ddf 407 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
e2449138 408 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
c0437050 409 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
54083f03 410 waitpkgintrin.h cldemoteintrin.h avx512bf16vlintrin.h avx512bf16intrin.h
92c7d5c6 411 enqcmdintrin.h avx512vp2intersectintrin.h avx512vp2intersectvlintrin.h"
bb607926 412 ;;
5c66405b 413x86_64-*-*)
414 cpu_type=i386
46f8e3b0 415 c_target_objs="i386-c.o"
416 cxx_target_objs="i386-c.o"
03385ed3 417 d_target_objs="i386-d.o"
bca226ea 418 extra_options="${extra_options} fused-madd.opt"
0c141fc4 419 extra_objs="x86-tune-sched.o x86-tune-sched-bd.o x86-tune-sched-atom.o x86-tune-sched-core.o i386-options.o i386-builtins.o i386-expand.o i386-features.o"
dfc6c66c 420 target_gtfiles="\$(srcdir)/config/i386/i386-builtins.c \$(srcdir)/config/i386/i386-expand.c \$(srcdir)/config/i386/i386-options.c"
daf03e2f 421 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
f25d51c3 422 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
2f212aae 423 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
18525343 424 immintrin.h x86intrin.h avxintrin.h xopintrin.h
87c62cba 425 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
297f4ddf 426 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
e2098065 427 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
428 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
429 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
fc975a40 430 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
2ed44428 431 shaintrin.h clflushoptintrin.h xsavecintrin.h
9f29061a 432 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
8a12b665 433 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
afee0628 434 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
37d0f067 435 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h
e0aa57d6 436 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h
957d28c3 437 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h
c3c0b6e9 438 gfniintrin.h cet.h avx512vbmi2intrin.h
97c6694f 439 avx512vbmi2vlintrin.h avx512vnniintrin.h
297f4ddf 440 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
e2449138 441 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
c0437050 442 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
54083f03 443 waitpkgintrin.h cldemoteintrin.h avx512bf16vlintrin.h avx512bf16intrin.h
92c7d5c6 444 enqcmdintrin.h avx512vp2intersectintrin.h avx512vp2intersectvlintrin.h"
5c66405b 445 ;;
b965afcd 446ia64-*-*)
447 extra_headers=ia64intrin.h
dd7870fa 448 extra_options="${extra_options} g.opt fused-madd.opt"
b965afcd 449 ;;
6af9f7ea 450hppa*-*-*)
bb607926 451 cpu_type=pa
452 ;;
d1e5a65f 453lm32*)
454 extra_options="${extra_options} g.opt"
455 ;;
467dc9aa 456m32r*-*-*)
457 cpu_type=m32r
d1e5a65f 458 extra_options="${extra_options} g.opt"
467dc9aa 459 ;;
83287f80 460m68k-*-*)
461 extra_headers=math-68881.h
d078aadd 462 extra_options="${extra_options} m68k/m68k-tables.opt"
bb607926 463 ;;
d34b0d1e 464microblaze*-*-*)
465 cpu_type=microblaze
466 extra_options="${extra_options} g.opt"
467 ;;
bb607926 468mips*-*-*)
469 cpu_type=mips
03385ed3 470 d_target_objs="mips-d.o"
c1af8d58 471 extra_headers="loongson.h loongson-mmiintrin.h msa.h"
0c9081e8 472 extra_objs="frame-header-opt.o"
668de2f7 473 extra_options="${extra_options} g.opt fused-madd.opt mips/mips-tables.opt"
bb607926 474 ;;
eae21ed1 475nds32*)
476 cpu_type=nds32
d08b1d22 477 extra_headers="nds32_intrinsic.h nds32_isr.h nds32_init.inc"
a5a22b4f 478 case ${target} in
479 nds32*-*-linux*)
480 extra_options="${extra_options} nds32/nds32-linux.opt"
481 ;;
482 nds32*-*-elf*)
483 extra_options="${extra_options} nds32/nds32-elf.opt"
484 ;;
485 *)
486 ;;
487 esac
d1873447 488 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 nds32-relax-opt.o nds32-utils.o"
eae21ed1 489 ;;
de65406d 490nios2-*-*)
491 cpu_type=nios2
492 extra_options="${extra_options} g.opt"
f7c4fafb 493 ;;
8ce80784 494nvptx-*-*)
495 cpu_type=nvptx
496 ;;
d61fdfe7 497or1k*-*-*)
498 cpu_type=or1k
499 ;;
bb607926 500powerpc*-*-*)
501 cpu_type=rs6000
beaeea8c 502 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o rs6000-call.o"
5eee1838 503 extra_headers="ppc-asm.h altivec.h htmintrin.h htmxlintrin.h"
4aca0cfd 504 extra_headers="${extra_headers} bmi2intrin.h bmiintrin.h"
fdfc9dde 505 extra_headers="${extra_headers} xmmintrin.h mm_malloc.h emmintrin.h"
4aca0cfd 506 extra_headers="${extra_headers} mmintrin.h x86intrin.h"
84101bee 507 extra_headers="${extra_headers} pmmintrin.h tmmintrin.h smmintrin.h"
5eee1838 508 extra_headers="${extra_headers} ppu_intrinsics.h spu2vmx.h vec_types.h si2vmx.h"
d373518e 509 extra_headers="${extra_headers} amo.h"
cc5ffbb8 510 case x$with_cpu in
301d870b 511 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500|xfuture)
cc5ffbb8 512 cpu_is_64bit=yes
513 ;;
514 esac
d41a5879 515 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
beaeea8c 516 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.c \$(srcdir)/config/rs6000/rs6000-call.c"
805e22b2 517 ;;
48aa9227 518pru-*-*)
519 cpu_type=pru
520 ;;
fb55f581 521riscv*)
522 cpu_type=riscv
523 extra_objs="riscv-builtins.o riscv-c.o"
03385ed3 524 d_target_objs="riscv-d.o"
fb55f581 525 ;;
805e22b2 526rs6000*-*-*)
d41a5879 527 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
beaeea8c 528 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o rs6000-call.o"
529 target_gtfiles="$target_gtfiles \$(srcdir)/config/rs6000/rs6000-logue.c \$(srcdir)/config/rs6000/rs6000-call.c"
805e22b2 530 ;;
bb607926 531sparc*-*-*)
532 cpu_type=sparc
9e64c9a4 533 c_target_objs="sparc-c.o"
534 cxx_target_objs="sparc-c.o"
03385ed3 535 d_target_objs="sparc-d.o"
6b27013f 536 extra_headers="visintrin.h"
bb607926 537 ;;
644459d0 538spu*-*-*)
539 cpu_type=spu
644459d0 540 ;;
805e22b2 541s390*-*-*)
37d32fbf 542 cpu_type=s390
03385ed3 543 d_target_objs="s390-d.o"
81470015 544 extra_options="${extra_options} fused-madd.opt"
07f32359 545 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
805e22b2 546 ;;
4ee34c70 547# Note the 'l'; we need to be able to match e.g. "shle" or "shl".
fc7383ad 548sh[123456789lbe]*-*-* | sh-*-*)
87e19636 549 cpu_type=sh
658a6fb7 550 extra_options="${extra_options} fused-madd.opt"
ee8867ef 551 extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
87e19636 552 ;;
c5b0bf72 553v850*-*-*)
554 cpu_type=v850
555 ;;
5aa04b01 556tic6x-*-*)
557 cpu_type=c6x
558 extra_headers="c6x_intrinsics.h"
559 extra_options="${extra_options} c6x/c6x-tables.opt"
560 ;;
041cf413 561xtensa*-*-*)
562 extra_options="${extra_options} fused-madd.opt"
563 ;;
7ce78e23 564tilegx*-*-*)
565 cpu_type=tilegx
7ce78e23 566 ;;
2da35515 567tilepro*-*-*)
7ce78e23 568 cpu_type=tilepro
7ce78e23 569 ;;
bb607926 570esac
571
572tm_file=${cpu_type}/${cpu_type}.h
03385ed3 573tm_d_file=${cpu_type}/${cpu_type}.h
20ffb0b1 574if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
bb607926 575then
20ffb0b1 576 tm_p_file=${cpu_type}/${cpu_type}-protos.h
03385ed3 577 tm_d_file="${tm_d_file} ${cpu_type}/${cpu_type}-protos.h"
20ffb0b1 578fi
03385ed3 579
b5ccaa7b 580extra_modes=
581if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
582then
583 extra_modes=${cpu_type}/${cpu_type}-modes.def
584fi
ff05e09e 585if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
586then
587 extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
588fi
a8456aba 589
09c6646e 590case ${target} in
bb009361 591aarch64*-*-*)
aa7f84c2 592 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
bb009361 593 case ${with_abi} in
594 "")
595 if test "x$with_multilib_list" = xilp32; then
596 tm_file="aarch64/biarchilp32.h ${tm_file}"
597 else
598 tm_file="aarch64/biarchlp64.h ${tm_file}"
599 fi
600 ;;
601 ilp32)
602 tm_file="aarch64/biarchilp32.h ${tm_file}"
603 ;;
604 lp64)
605 tm_file="aarch64/biarchlp64.h ${tm_file}"
606 ;;
607 *)
608 echo "Unknown ABI used in --with-abi=$with_abi"
609 exit 1
610 esac
611 ;;
144c3e90 612i[34567]86-*-*)
6fa78bde 613 if test "x$with_abi" != x; then
614 echo "This target does not support --with-abi."
615 exit 1
616 fi
144c3e90 617 ;;
a8456aba 618x86_64-*-*)
6fa78bde 619 case ${with_abi} in
620 "")
621 if test "x$with_multilib_list" = xmx32; then
622 tm_file="i386/biarchx32.h ${tm_file}"
623 else
624 tm_file="i386/biarch64.h ${tm_file}"
625 fi
626 ;;
627 64 | m64)
628 tm_file="i386/biarch64.h ${tm_file}"
629 ;;
630 x32 | mx32)
631 tm_file="i386/biarchx32.h ${tm_file}"
632 ;;
633 *)
634 echo "Unknown ABI used in --with-abi=$with_abi"
635 exit 1
636 esac
a8456aba 637 ;;
015adf41 638arm*-*-*)
789753f1 639 tm_p_file="arm/arm-flags.h ${tm_p_file} arm/aarch-common-protos.h"
043cabe3 640 ;;
a8456aba 641esac
642
bb607926 643# On a.out targets, we need to use collect2.
09c6646e 644case ${target} in
bb607926 645*-*-*aout*)
646 use_collect2=yes
647 ;;
582b17a6 648esac
bb607926 649
3d0ed9e7 650# Common C libraries.
a9173cea 651tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
3d0ed9e7 652
f292755a 653# 32-bit x86 processors supported by --with-arch=. Each processor
654# MUST be separated by exactly one space.
655x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
656athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
657i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
3f6183e5 658pentium4 pentium4m pentiumpro prescott lakemont"
f292755a 659
660# 64-bit x86 processors supported by --with-arch=. Each processor
661# MUST be separated by exactly one space.
662x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
703d2f69 663bdver3 bdver4 znver1 znver2 btver1 btver2 k8 k8-sse3 opteron \
664opteron-sse3 nocona core2 corei7 corei7-avx core-avx-i core-avx2 atom \
665slm nehalem westmere sandybridge ivybridge haswell broadwell bonnell \
666silvermont knl knm skylake-avx512 cannonlake icelake-client icelake-server \
e9d55eda 667skylake goldmont goldmont-plus tremont cascadelake x86-64 native"
f292755a 668
669# Additional x86 processors supported by --with-cpu=. Each processor
670# MUST be separated by exactly one space.
671x86_cpus="generic intel"
672
805e22b2 673# Common parts for widely ported systems.
09c6646e 674case ${target} in
1025d5b9 675*-*-darwin*)
571f1d3d 676 tmake_file="t-darwin "
650c26dc 677 tm_file="${tm_file} darwin.h"
678 case ${target} in
9166f36a 679 *-*-darwin9*)
650c26dc 680 tm_file="${tm_file} darwin9.h"
681 ;;
182d4990 682 *-*-darwin[1][01]*)
9166f36a 683 tm_file="${tm_file} darwin9.h darwin10.h"
684 ;;
182d4990 685 *-*-darwin[1][2-9]* | *-*-darwin[2][0-9]*)
686 tm_file="${tm_file} darwin9.h darwin10.h darwin12.h"
687 ;;
650c26dc 688 esac
689 tm_file="${tm_file} ${cpu_type}/darwin.h"
1025d5b9 690 tm_p_file="${tm_p_file} darwin-protos.h"
dfc6c66c 691 target_gtfiles="$target_gtfiles \$(srcdir)/config/darwin.c"
0c44645a 692 extra_options="${extra_options} darwin.opt"
46f8e3b0 693 c_target_objs="${c_target_objs} darwin-c.o"
694 cxx_target_objs="${cxx_target_objs} darwin-c.o"
32006f36 695 fortran_target_objs="darwin-f.o"
c94b1d0e 696 target_has_targetcm=yes
6d077822 697 extra_objs="${extra_objs} darwin.o"
a9540fb6 698 extra_gcc_objs="darwin-driver.o"
3da996b9 699 default_use_cxa_atexit=yes
ef87fe4c 700 use_gcc_stdint=wrap
1025d5b9 701 case ${enable_threads} in
702 "" | yes | posix) thread_file='posix' ;;
703 esac
704 ;;
463553db 705*-*-dragonfly*)
706 gas=yes
707 gnu_ld=yes
708 tmake_file="t-slibgcc"
709 case ${enable_threads} in
710 "" | yes | posix)
711 thread_file='posix'
712 ;;
713 no | single)
714 # Let these non-posix thread selections fall through if requested
715 ;;
716 *)
717 echo 'Unknown thread configuration for DragonFly BSD'
718 exit 1
719 ;;
720 esac
721 extra_options="$extra_options rpath.opt dragonfly.opt"
722 default_use_cxa_atexit=yes
723 use_gcc_stdint=wrap
724 ;;
1025d5b9 725*-*-freebsd*)
726 # This is the generic ELF configuration of FreeBSD. Later
727 # machine-specific sections may refine and add to this
728 # configuration.
729 #
730 # Due to tm_file entry ordering issues that vary between cpu
731 # architectures, we only define fbsd_tm_file to allow the
732 # machine-specific section to dictate the final order of all
733 # entries of tm_file with the minor exception that components
734 # of the tm_file set here will always be of the form:
735 #
736 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
737 #
738 # The machine-specific section should not tamper with this
739 # ordering but may order all other entries of tm_file as it
740 # pleases around the provided core setting.
741 gas=yes
742 gnu_ld=yes
cfb5f9aa 743 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
31d35465 744 if test "$fbsd_major" = ""; then
745 echo "Specify the major version number of the targeted FreeBSD release"
746 echo "like this: --target=amd64-unknown-freebsd10.1"
747 exit 1
748 fi
cfb5f9aa 749 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
4dc4ff49 750 tmake_file="t-slibgcc"
1025d5b9 751 case ${enable_threads} in
752 no)
753 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
754 ;;
5614d3f5 755 "" | yes | posix)
1025d5b9 756 thread_file='posix'
1025d5b9 757 ;;
3ebc7dec 758 *)
1025d5b9 759 echo 'Unknown thread configuration for FreeBSD'
760 exit 1
761 ;;
762 esac
c4c8f6ce 763 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
13c30464 764 extra_options="$extra_options rpath.opt freebsd.opt"
d52a86c7 765 case ${target} in
766 *-*-freebsd[345].*)
767 :;;
768 *)
769 default_use_cxa_atexit=yes;;
770 esac
c4c8f6ce 771 use_gcc_stdint=wrap
1025d5b9 772 ;;
90369c4f 773*-*-fuchsia*)
774 native_system_header_dir=/include
775 ;;
79573034 776*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
55d8cecf 777 extra_options="$extra_options gnu-user.opt"
338f7557 778 gas=yes
779 gnu_ld=yes
780 case ${enable_threads} in
781 "" | yes | posix) thread_file='posix' ;;
782 esac
4dc4ff49 783 tmake_file="t-slibgcc"
72a65e81 784 case $target in
79573034 785 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu)
72a65e81 786 :;;
787 *-*-gnu*)
638454a1 788 native_system_header_dir=/include
789 ;;
72a65e81 790 esac
1b455a16 791 # Linux C libraries selection switch: glibc / uclibc / bionic.
66fd9df9 792 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
72a65e81 793 case $target in
794 *linux*)
1b455a16 795 tm_p_file="${tm_p_file} linux-protos.h"
796 tmake_file="${tmake_file} t-linux"
797 extra_objs="${extra_objs} linux.o"
798 extra_options="${extra_options} linux.opt"
799 ;;
72a65e81 800 esac
66fd9df9 801 case $target in
802 *-*-*android*)
803 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
804 ;;
ee085235 805 *-*-*uclibc*)
66fd9df9 806 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
c490c13b 807 ;;
a9173cea 808 *-*-*musl*)
809 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
810 ;;
c490c13b 811 *)
66fd9df9 812 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
ee085235 813 ;;
814 esac
66fd9df9 815 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
816 # is provided.
430e8f92 817 default_use_cxa_atexit=yes
50388ca3 818 use_gcc_tgmath=no
f3449a3c 819 use_gcc_stdint=wrap
f1b7ead9 820 # Enable compilation for Android by default for *android* targets.
821 case $target in
822 *-*-*android*)
823 tm_defines="$tm_defines ANDROID_DEFAULT=1"
824 ;;
825 *)
826 tm_defines="$tm_defines ANDROID_DEFAULT=0"
827 ;;
828 esac
6adc88f8 829 c_target_objs="${c_target_objs} glibc-c.o"
830 cxx_target_objs="${cxx_target_objs} glibc-c.o"
03385ed3 831 d_target_objs="${d_target_objs} glibc-d.o"
6adc88f8 832 tmake_file="${tmake_file} t-glibc"
833 target_has_targetcm=yes
03385ed3 834 target_has_targetdm=yes
338f7557 835 ;;
4ace673e 836*-*-netbsd*)
efb5972c 837 tm_p_file="${tm_p_file} netbsd-protos.h"
838 tmake_file="t-netbsd t-slibgcc"
839 extra_objs="${extra_objs} netbsd.o"
668bd806 840 d_target_objs="${d_target_objs} netbsd-d.o"
338f7557 841 gas=yes
842 gnu_ld=yes
c703c96f 843 use_gcc_stdint=wrap
338f7557 844 case ${enable_threads} in
8c0c0f7c 845 "" | yes | posix) thread_file='posix' ;;
338f7557 846 esac
3ff28a9d 847 nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h"
a26e3ca5 848 default_use_cxa_atexit=yes
668bd806 849 target_has_targetdm=yes
4daa9280 850 case ${target} in
851 arm*-* | i[34567]86-* | powerpc*-* | sparc*-* | x86_64-*)
852 default_gnu_indirect_function=yes
853 ;;
854 esac
338f7557 855 ;;
1025d5b9 856*-*-openbsd*)
4dc4ff49 857 tmake_file="t-openbsd"
338f7557 858 case ${enable_threads} in
1025d5b9 859 yes)
338f7557 860 thread_file='posix'
338f7557 861 ;;
862 esac
f3c0d3e6 863 case ${target} in
864 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
865 default_use_cxa_atexit=yes
866 ;;
867 esac
338f7557 868 ;;
6de77184 869*-*-phoenix*)
870 gas=yes
871 gnu_ld=yes
872 default_use_cxa_atexit=yes
873 ;;
2fcfea2a 874*-*-rtems*)
875 case ${enable_threads} in
f4f5951e 876 "" | yes | rtems) thread_file='rtems' ;;
877 posix) thread_file='posix' ;;
878 no) ;;
879 *)
880 echo 'Unknown thread configuration for RTEMS'
881 exit 1
882 ;;
2fcfea2a 883 esac
b69fc80a 884 tmake_file="${tmake_file} t-rtems"
d6959f51 885 extra_options="${extra_options} rtems.opt"
d69684b5 886 default_use_cxa_atexit=yes
f3449a3c 887 use_gcc_stdint=wrap
888 ;;
889*-*-uclinux*)
55d8cecf 890 extra_options="$extra_options gnu-user.opt"
f3449a3c 891 use_gcc_stdint=wrap
b9ce5410 892 case ${enable_threads} in
893 "" | yes | posix) thread_file='posix' ;;
894 esac
d9993a19 895 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
2fcfea2a 896 ;;
b433697b 897*-*-rdos*)
898 use_gcc_stdint=wrap
899 ;;
0c7243ae 900*-*-solaris2*)
c2e7ebeb 901 # i?86-*-solaris2* needs to insert headers between cpu default and
902 # Solaris 2 specific ones.
fc99725b 903 sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
904 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
905 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
cad405eb 906 case ${target} in
9273bda7 907 *-*-solaris2.1[1-9]*)
908 # __cxa_atexit was introduced in Solaris 11.4.
cad405eb 909 default_use_cxa_atexit=yes
910 ;;
911 esac
3efb5d22 912 use_gcc_stdint=wrap
c2e7ebeb 913 if test x$gnu_ld = xyes; then
914 tm_file="usegld.h ${tm_file}"
915 fi
916 if test x$gas = xyes; then
917 tm_file="usegas.h ${tm_file}"
918 fi
919 tm_p_file="${tm_p_file} sol2-protos.h"
a997b0d8 920 tmake_file="${tmake_file} t-sol2 t-slibgcc"
c2e7ebeb 921 c_target_objs="${c_target_objs} sol2-c.o"
16a1895e 922 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
521c7eaf 923 d_target_objs="${d_target_objs} sol2-d.o"
74edde2f 924 extra_objs="${extra_objs} sol2.o sol2-stubs.o"
0c7243ae 925 extra_options="${extra_options} sol2.opt"
c2e7ebeb 926 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
927 "":yes:* | yes:yes:* )
928 thread_file=posix
929 ;;
930 esac
521c7eaf 931 target_has_targetdm=yes
0c7243ae 932 ;;
b0a47c39 933*-*-*vms*)
934 extra_options="${extra_options} vms/vms.opt"
935 xmake_file=vms/x-vms
a997b0d8 936 tmake_file="vms/t-vms t-slibgcc"
ded97e77 937 extra_objs="vms.o"
938 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
939 tm_p_file="${tm_p_file} vms/vms-protos.h"
8f852c44 940 xm_file="vms/xm-vms.h"
09ddc95a 941 c_target_objs="vms-c.o"
942 cxx_target_objs="vms-c.o"
b26acc64 943 fortran_target_objs="vms-f.o"
e55b581d 944 use_gcc_stdint=provide
945 tm_file="${tm_file} vms/vms-stdint.h"
b0a47c39 946 if test x$gnu_ld != xyes; then
947 # Build wrappers for native case.
948 extra_programs="ld\$(exeext) ar\$(exeext)"
949 tmake_file="$tmake_file vms/t-vmsnative"
950 fi
951 ;;
805e22b2 952*-*-vxworks*)
338f7557 953 tmake_file=t-vxworks
e6eccdb3 954 xm_defines=POSIX
955 extra_options="${extra_options} vxworks.opt"
3aa6cfd7 956 extra_objs="$extra_objs vxworks.o"
fde53671 957 use_gcc_stdint=provide
958 tm_file="${tm_file} vxworks-stdint.h"
d9799238 959 case ${enable_threads} in
960 no) ;;
961 "" | yes | vxworks) thread_file='vxworks' ;;
962 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
963 esac
b75ef09f 964 case $target in
965 *-*-vxworks7*)
966 tm_defines="$tm_defines TARGET_VXWORKS7=1"
967 ;;
968 esac
181511af 969 case $target in
970 *64-*-vxworks*)
971 tm_defines="$tm_defines TARGET_VXWORKS64=1"
972 ;;
973 esac
338f7557 974 ;;
3c867e46 975*-*-elf|arc*-*-elf*)
430e8f92 976 # Assume that newlib is being used and so __cxa_atexit is provided.
977 default_use_cxa_atexit=yes
f3449a3c 978 use_gcc_stdint=wrap
430e8f92 979 ;;
bb607926 980esac
981
09c6646e 982case ${target} in
90369c4f 983aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
16878cba 984 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
f39d033c 985 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-elf-raw.h"
16878cba 986 tmake_file="${tmake_file} aarch64/t-aarch64"
83e8dc76 987 case $target in
988 aarch64-*-elf*)
989 use_gcc_stdint=wrap
990 ;;
90369c4f 991 aarch64-*-fuchsia*)
992 tm_file="${tm_file} fuchsia.h"
993 ;;
83e8dc76 994 aarch64-*-rtems*)
995 tm_file="${tm_file} rtems.h aarch64/rtems.h"
996 ;;
997 esac
16878cba 998 case $target in
999 aarch64_be-*)
1000 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1001 ;;
1002 esac
bb009361 1003 aarch64_multilibs="${with_multilib_list}"
1004 if test "$aarch64_multilibs" = "default"; then
1005 aarch64_multilibs="lp64,ilp32"
1006 fi
1007 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1008 for aarch64_multilib in ${aarch64_multilibs}; do
1009 case ${aarch64_multilib} in
1010 ilp32 | lp64 )
1011 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1012 ;;
1013 *)
1014 echo "--with-multilib-list=${aarch64_multilib} not supported."
1015 exit 1
1016 esac
1017 done
1018 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
16878cba 1019 ;;
88afddbc 1020aarch64*-*-freebsd*)
1021 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
f39d033c 1022 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-freebsd.h"
88afddbc 1023 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
6d6182a2 1024 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
88afddbc 1025 ;;
e9684c79 1026aarch64*-*-netbsd*)
1027 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file}"
f39d033c 1028 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-netbsd.h"
e9684c79 1029 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-netbsd"
1030 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1031 ;;
16878cba 1032aarch64*-*-linux*)
1033 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
f39d033c 1034 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-linux.h"
16878cba 1035 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
9cbee213 1036 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
16878cba 1037 case $target in
1038 aarch64_be-*)
1039 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1040 ;;
1041 esac
bb009361 1042 aarch64_multilibs="${with_multilib_list}"
1043 if test "$aarch64_multilibs" = "default"; then
1044 # TODO: turn on ILP32 multilib build after its support is mature.
1045 # aarch64_multilibs="lp64,ilp32"
1046 aarch64_multilibs="lp64"
1047 fi
1048 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
1049 for aarch64_multilib in ${aarch64_multilibs}; do
1050 case ${aarch64_multilib} in
1051 ilp32 | lp64 )
1052 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
1053 ;;
1054 *)
1055 echo "--with-multilib-list=${aarch64_multilib} not supported."
1056 exit 1
1057 esac
1058 done
1059 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
16878cba 1060 ;;
bb607926 1061alpha*-*-linux*)
a25bf392 1062 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1ffab76c 1063 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
0b803a91 1064 extra_options="${extra_options} alpha/elf.opt"
bb607926 1065 ;;
bb607926 1066alpha*-*-netbsd*)
3ff28a9d 1067 tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h"
1ffab76c 1068 tmake_file="${tmake_file} alpha/t-alpha"
0b803a91 1069 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
1070 alpha/elf.opt"
bb607926 1071 ;;
bb607926 1072alpha*-*-openbsd*)
8e6600a1 1073 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
a25bf392 1074 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
1ffab76c 1075 tmake_file="${tmake_file} alpha/t-alpha"
0b803a91 1076 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
bb607926 1077 # default x-alpha is only appropriate for dec-osf.
bb607926 1078 ;;
73777e7b 1079alpha*-dec-*vms*)
2936855c 1080 tm_file="${tm_file} vms/vms.h alpha/vms.h"
1ffab76c 1081 tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha"
bb607926 1082 ;;
3c867e46 1083arc*-*-elf*)
5fbceedd 1084 tm_file="arc/arc-arch.h dbxelf.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}"
61aeeaac 1085 tmake_file="arc/t-multilib arc/t-arc"
1086 extra_gcc_objs="driver-arc.o"
1087 if test "x$with_cpu" != x; then
1088 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1089 fi
3c867e46 1090 if test x${with_endian} = x; then
1091 case ${target} in
1092 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1093 *) with_endian=little ;;
1094 esac
1095 fi
1096 case ${with_endian} in
1097 big|little) ;;
1098 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1099 esac
1100 case ${with_endian} in
5fbceedd 1101 big*) tm_file="arc/big.h ${tm_file}"
3c867e46 1102 esac
1103 ;;
927c0132 1104arc*-*-linux*)
5fbceedd 1105 tm_file="arc/arc-arch.h dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h arc/linux.h ${tm_file}"
0eacfbcb 1106 tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc"
61aeeaac 1107 extra_gcc_objs="driver-arc.o"
1108 if test "x$with_cpu" != x; then
1109 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu"
1110 fi
3c867e46 1111 if test x${with_endian} = x; then
1112 case ${target} in
1113 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
1114 *) with_endian=little ;;
1115 esac
1116 fi
1117 case ${with_endian} in
1118 big|little) ;;
1119 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1120 esac
1121 case ${with_endian} in
5fbceedd 1122 big*) tm_file="arc/big.h ${tm_file}"
3c867e46 1123 esac
b4371b27 1124 # Force .init_array support. The configure script cannot always
1125 # automatically detect that GAS supports it, yet we require it.
1126 gcc_cv_initfini_array=yes
1127 ;;
17a98fea 1128arm-wrs-vxworks|arm-wrs-vxworks7)
8afdaa80 1129 extra_options="${extra_options} arm/vxworks.opt"
06469f9e 1130 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
17a98fea 1131 case $target in
1132 *-vxworks7)
1133 # VxWorks7 on ARM adheres to the ARM Base Platform ABI
1134 tmake_file="${tmake_file} arm/t-bpabi"
1135 tm_file="arm/bpabi.h ${tm_file}"
1136 # The BPABI long long divmod functions return a 128-bit value in
1137 # registers r0-r3.
1138 need_64bit_hwint=yes
1139 default_use_cxa_atexit=yes
1140 ;;
1141 *) ;;
1142 esac
1143 tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1144 target_cpu_cname="arm8"
d9799238 1145 ;;
275d0a7c 1146arm*-*-freebsd*) # ARM FreeBSD EABI
1147 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1148 case $target in
1149 arm*b-*-freebsd*)
1150 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1151 ;;
1152 esac
1153 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1154 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1155 case $target in
1156 armv6*-*-freebsd*)
879a1f04 1157 target_cpu_cname="arm1176jzf-s"
5b2f6136 1158 if test $fbsd_major -ge 11; then
1159 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1160 fi
275d0a7c 1161 ;;
5ef60a28 1162 armv7*-*-freebsd*)
1163 target_cpu_cname="generic-armv7-a"
1164 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1165 ;;
b906ae74 1166 *)
1167 target_cpu_cname="arm9"
1168 ;;
275d0a7c 1169 esac
1170 with_tls=${with_tls:-gnu}
1171 ;;
f470dade 1172arm*-*-netbsdelf*)
0e9ba648 1173 target_cpu_cname="strongarm"
16753006 1174 tmake_file="${tmake_file} arm/t-arm"
1175 tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h"
1176 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1177 case ${target} in
1178 arm*eb-*) tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" ;;
1179 esac
1180 case ${target} in
1181 arm*-*-netbsdelf-*eabi*)
1182 tm_file="$tm_file arm/bpabi.h arm/netbsd-elf.h arm/netbsd-eabi.h"
1183 tmake_file="$tmake_file arm/t-bpabi arm/t-netbsdeabi"
1184 ;;
1185 *)
1186 tm_file="$tm_file arm/netbsd-elf.h"
1187 tmake_file="$tmake_file arm/t-netbsd"
1188 ;;
1189 esac
1190 tm_file="${tm_file} arm/aout.h arm/arm.h"
1191 case ${target} in
1192 arm*-*-netbsdelf-*eabihf*)
1193 # Hard-float requires at least Arm v5te
1194 target_cpu_cname="arm10e"
1195 tm_defines="${tm_defines} TARGET_DEFAULT_FLOAT_ABI=ARM_FLOAT_ABI_HARD"
1196 ;;
1197 esac
1198 case ${target} in
1199 armv6*) target_cpu_cname="arm1176jzf-s";;
1200 armv7*) target_cpu_cname="generic-armv7-a";;
1201 esac
f470dade 1202 ;;
f49eb158 1203arm*-*-linux-*) # ARM GNU/Linux with ELF
deb14f24 1204 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"
1b455a16 1205 extra_options="${extra_options} linux-android.opt"
fcc91c04 1206 case $target in
736a63d4 1207 arm*b-*-linux*)
295f5c5c 1208 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1209 ;;
fcc91c04 1210 esac
ced500f0 1211 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
85f370fe 1212 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h arm/arm.h"
bb36bb09 1213 # Generation of floating-point instructions requires at least ARMv5te.
1214 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
1215 target_cpu_cname="arm10e"
1216 else
1217 target_cpu_cname="arm10tdmi"
1218 fi
295f5c5c 1219 # Define multilib configuration for arm-linux-androideabi.
6783d878 1220 case ${target} in
295f5c5c 1221 *-androideabi)
1222 tmake_file="$tmake_file arm/t-linux-androideabi"
6783d878 1223 ;;
1224 esac
295f5c5c 1225 # The EABI requires the use of __cxa_atexit.
1226 default_use_cxa_atexit=yes
bb10d7b5 1227 with_tls=${with_tls:-gnu}
bb607926 1228 ;;
295f5c5c 1229arm*-*-uclinux*eabi*) # ARM ucLinux
f3449a3c 1230 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
b69fc80a 1231 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
85f370fe 1232 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h arm/arm.h"
b906ae74 1233 target_cpu_cname="arm7tdmi"
295f5c5c 1234 # The EABI requires the use of __cxa_atexit.
1235 default_use_cxa_atexit=yes
582b17a6 1236 ;;
6de77184 1237arm*-*-phoenix*)
1238 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1239 tm_file="${tm_file} newlib-stdint.h phoenix.h"
1240 tm_file="${tm_file} arm/aout.h arm/arm.h"
1241 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix"
b906ae74 1242 target_cpu_cname="arm7tdmi"
6de77184 1243 ;;
90369c4f 1244arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*)
0e0256f2 1245 case ${target} in
1246 arm*eb-*-eabi*)
1247 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1248 esac
a6b58380 1249 default_use_cxa_atexit=yes
30e9913f 1250 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
b69fc80a 1251 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
b906ae74 1252 target_cpu_cname="arm7tdmi"
30e9913f 1253 case ${target} in
35da3667 1254 arm*-*-eabi*)
f1b7ead9 1255 tm_file="$tm_file newlib-stdint.h"
a88cbac9 1256 tmake_file="${tmake_file} arm/t-bpabi"
f3449a3c 1257 use_gcc_stdint=wrap
35da3667 1258 ;;
90369c4f 1259 arm*-*-fuchsia*)
1260 tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h"
ea0d5120 1261 tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia"
26a9c0df 1262 target_cpu_cname="generic-armv7-a"
90369c4f 1263 ;;
e222cec3 1264 arm*-*-rtems*)
b5404134 1265 tm_file="${tm_file} rtems.h arm/rtems.h newlib-stdint.h"
1266 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1ecdfe84 1267 ;;
30e9913f 1268 arm*-*-symbianelf*)
1269 tm_file="${tm_file} arm/symbian.h"
35da3667 1270 # We do not include t-bpabi for Symbian OS because the system
1271 # provides its own implementation of the BPABI functions.
67de96d2 1272 tmake_file="${tmake_file} arm/t-symbian"
b906ae74 1273 target_cpu_cname="arm10tdmi"
30e9913f 1274 ;;
1275 esac
85f370fe 1276 tm_file="${tm_file} arm/aout.h arm/arm.h"
ccf155b5 1277 ;;
bb607926 1278avr-*-*)
f0aa7fe2 1279 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
fd28e216 1280 if test x${with_avrlibc} != xno; then
1281 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1282 tm_defines="${tm_defines} WITH_AVRLIBC"
1283 fi
da0aa575 1284 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
f3449a3c 1285 use_gcc_stdint=wrap
f0aa7fe2 1286 extra_gcc_objs="driver-avr.o avr-devices.o"
47fe598e 1287 extra_objs="avr-devices.o avr-log.o"
bb607926 1288 ;;
9e6a0967 1289bfin*-elf*)
f3449a3c 1290 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
e0cbe6c1 1291 tmake_file=bfin/t-bfin-elf
1292 use_collect2=no
1293 ;;
43be3be8 1294bfin*-uclinux*)
deb14f24 1295 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
e0cbe6c1 1296 tmake_file=bfin/t-bfin-uclinux
e0cbe6c1 1297 use_collect2=no
1298 ;;
bce94ab5 1299bfin*-linux-uclibc*)
deb14f24 1300 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"
45e5f010 1301 tmake_file="${tmake_file} bfin/t-bfin-linux"
e0cbe6c1 1302 use_collect2=no
1303 ;;
4a7fad64 1304bfin*-rtems*)
b4cebe6e 1305 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
b69fc80a 1306 tmake_file="${tmake_file} bfin/t-rtems"
e0cbe6c1 1307 ;;
9e6a0967 1308bfin*-*)
f3449a3c 1309 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
e0cbe6c1 1310 use_collect2=no
f3449a3c 1311 use_gcc_stdint=wrap
e0cbe6c1 1312 ;;
b9fdd12b 1313cr16-*-elf)
a10f8074 1314 tm_file="elfos.h ${tm_file} newlib-stdint.h"
b9fdd12b 1315 tmake_file="${tmake_file} cr16/t-cr16 "
1316 use_collect2=no
1317 ;;
9b9e3455 1318crisv32-*-elf | crisv32-*-none)
f3449a3c 1319 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
9b9e3455 1320 tmake_file="cris/t-cris"
1321 target_cpu_default=32
1322 gas=yes
1323 extra_options="${extra_options} cris/elf.opt"
f3449a3c 1324 use_gcc_stdint=wrap
9b9e3455 1325 ;;
e03f789f 1326cris-*-elf | cris-*-none)
f3449a3c 1327 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
e03f789f 1328 tmake_file="cris/t-cris cris/t-elfmulti"
1329 gas=yes
c419af1d 1330 extra_options="${extra_options} cris/elf.opt"
f3449a3c 1331 use_gcc_stdint=wrap
e03f789f 1332 ;;
9b9e3455 1333crisv32-*-linux* | cris-*-linux*)
deb14f24 1334 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h"
f01c257a 1335 tmake_file="${tmake_file} cris/t-cris cris/t-linux"
c419af1d 1336 extra_options="${extra_options} cris/linux.opt"
9b9e3455 1337 case $target in
1338 cris-*-*)
1339 target_cpu_default=10
1340 ;;
1341 crisv32-*-*)
1342 target_cpu_default=32
1343 ;;
1344 esac
e03f789f 1345 ;;
9399b971 1346csky-*-*)
1347 if test x${with_endian} != x; then
1348 case ${with_endian} in
1349 big|little) ;;
1350 *)
1351 echo "with_endian=${with_endian} not supported."
1352 exit 1
1353 ;;
1354 esac
1355 fi
1356 if test x${with_float} != x; then
1357 case ${with_float} in
1358 soft | hard) ;;
1359 *) echo
1360 "Unknown floating point type used in --with-float=$with_float"
1361 exit 1
1362 ;;
1363 esac
1364 fi
1365 tm_file="csky/csky.h"
1366 md_file="csky/csky.md"
1367 out_file="csky/csky.c"
1368 tm_p_file="${tm_p_file} csky/csky-protos.h"
1369 extra_options="${extra_options} csky/csky_tables.opt"
1370
1371 if test x${enable_tpf_debug} = xyes; then
1372 tm_defines="${tm_defines} ENABLE_TPF_DEBUG"
1373 fi
1374
1375 case ${target} in
1376 csky-*-elf*)
1377 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} csky/csky-elf.h"
1378 tmake_file="csky/t-csky csky/t-csky-elf"
1379 default_use_cxa_atexit=no
1380 ;;
1381 csky-*-linux*)
1382 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} csky/csky-linux-elf.h"
1383 tmake_file="${tmake_file} csky/t-csky csky/t-csky-linux"
1384
1385 if test "x${enable_multilib}" = xyes ; then
1386 tm_file="$tm_file ./sysroot-suffix.h"
1387 tmake_file="${tmake_file} csky/t-sysroot-suffix"
1388 fi
1389
1390 case ${target} in
1391 csky-*-linux-gnu*)
1392 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
a139c535 1393 # Force .init_array support. The configure script cannot always
1394 # automatically detect that GAS supports it, yet we require it.
1395 gcc_cv_initfini_array=yes
9399b971 1396 ;;
1397 csky-*-linux-uclibc*)
1398 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
1399 default_use_cxa_atexit=no
1400 ;;
1401 *)
1402 echo "Unknown target $target"
1403 exit 1
1404 ;;
1405 esac
1406 ;;
1407 *)
1408 echo "Unknown target $target"
1409 exit 1
1410 ;;
1411 esac
1412 ;;
1c579c0e 1413epiphany-*-elf | epiphany-*-rtems*)
1414 tm_file="${tm_file} dbxelf.h elfos.h"
1415 tmake_file="${tmake_file} epiphany/t-epiphany"
1416 case ${target} in
1417 epiphany-*-rtems*)
1418 tm_file="${tm_file} rtems.h epiphany/rtems.h newlib-stdint.h"
1419 ;;
1420 *)
1421 tm_file="${tm_file} newlib-stdint.h"
1422 ;;
1423 esac
d19f5793 1424 extra_options="${extra_options} fused-madd.opt"
1c579c0e 1425 extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o"
d19f5793 1426 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1427 extra_headers="epiphany_intrinsics.h"
1428 ;;
bb607926 1429fr30-*-elf)
ecf20f53 1430 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
bb607926 1431 ;;
efb6037d 1432frv-*-elf)
b1319ddf 1433 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
efb6037d 1434 tmake_file=frv/t-frv
1435 ;;
3e7f6cce 1436frv-*-*linux*)
b1319ddf 1437 tm_file="dbxelf.h elfos.h ${tm_file} \
deb14f24 1438 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1afa774a 1439 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
3e7f6cce 1440 ;;
b6616c9c 1441ft32-*-elf)
1442 gas=yes
1443 gnu_ld=yes
1444 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1445 tmake_file="${tmake_file} ft32/t-ft32"
1446 ;;
d62c0949 1447amdgcn-*-amdhsa)
1448 tm_file="elfos.h gcn/gcn-hsa.h gcn/gcn.h newlib-stdint.h"
1449 tmake_file="gcn/t-gcn-hsa"
1450 native_system_header_dir=/include
1451 extra_modes=gcn/gcn-modes.def
1452 extra_objs="${extra_objs} gcn-tree.o"
1453 extra_gcc_objs="driver-gcn.o"
1454 case "$host" in
1455 x86_64*-*-linux-gnu )
1456 if test "$ac_cv_search_dlopen" != no; then
1457 extra_programs="${extra_programs} gcn-run\$(exeext)"
1458 fi
1459 ;;
1460 esac
1461 if test x$enable_as_accelerator = xyes; then
1462 extra_programs="${extra_programs} mkoffload\$(exeext)"
1463 tm_file="${tm_file} gcn/offload.h"
1464 fi
74d6bdb6 1465 # Force .init_array support.
1466 gcc_cv_initfini_array=yes
a4340c0d 1467 thread_file=gcn
d62c0949 1468 ;;
be52b6d8 1469moxie-*-elf)
1470 gas=yes
1471 gnu_ld=yes
01a092a9 1472 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
84600db5 1473 tmake_file="${tmake_file} moxie/t-moxie"
be52b6d8 1474 ;;
447e8aaa 1475moxie-*-uclinux*)
1476 gas=yes
1477 gnu_ld=yes
deb14f24 1478 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
84600db5 1479 tmake_file="${tmake_file} moxie/t-moxie"
447e8aaa 1480 ;;
c4fa0b2a 1481moxie-*-rtems*)
b69fc80a 1482 tmake_file="${tmake_file} moxie/t-moxie"
c4fa0b2a 1483 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1484 ;;
ab0c4d2e 1485moxie-*-moxiebox*)
1486 gas=yes
1487 gnu_ld=yes
1488 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1489 tmake_file="${tmake_file} moxie/t-moxiebox"
1490 ;;
15b65932 1491h8300-*-elf*)
237490bf 1492 tmake_file="h8300/t-h8300"
f3449a3c 1493 tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
15b65932 1494 ;;
acff2768 1495h8300-*-linux*)
1496 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux"
1497 tm_file="h8300/h8300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h"
1498 ;;
6af9f7ea 1499hppa*64*-*-linux*)
8ab32933 1500 target_cpu_default="MASK_PA_11|MASK_PA_20"
deb14f24 1501 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
f3449a3c 1502 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1503 pa/pa64-linux.h"
e364000d 1504 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1505 d_target_objs="${d_target_objs} pa-d.o"
6630177d 1506 gas=yes gnu_ld=yes
1507 ;;
6af9f7ea 1508hppa*-*-linux*)
ecc25375 1509 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
deb14f24 1510 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
6630177d 1511 pa/pa32-regs.h pa/pa32-linux.h"
f3c59f1b 1512 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1513 d_target_objs="${d_target_objs} pa-d.o"
bb607926 1514 ;;
07cf7615 1515hppa*-*-openbsd*)
1516 target_cpu_default="MASK_PA_11"
1517 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1518 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
07cf7615 1519 extra_options="${extra_options} openbsd.opt"
e364000d 1520 tmake_file="pa/t-pa"
1521 d_target_objs="${d_target_objs} pa-d.o"
07cf7615 1522 gas=yes
1523 gnu_ld=yes
1524 ;;
4eda35ff 1525hppa*-*-netbsd*)
1526 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1527 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} \
1528 pa/pa-netbsd.h pa/pa32-regs.h pa/pa32-netbsd.h"
1529 tmake_file="${tmake_file}"
1530 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
1531 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1532 ;;
8ab32933 1533hppa[12]*-*-hpux10*)
1534 case ${target} in
1535 hppa1.1-*-* | hppa2*-*-*)
1536 target_cpu_default="MASK_PA_11"
1537 ;;
1538 esac
1539 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1540 pa/pa-hpux.h pa/pa-hpux10.h"
4d15365c 1541 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
8ab32933 1542 case ${target} in
1543 *-*-hpux10.[1-9]*)
1544 tm_file="${tm_file} pa/pa-hpux1010.h"
bd57250e 1545 extra_options="${extra_options} pa/pa-hpux1010.opt"
8ab32933 1546 ;;
bb607926 1547 esac
c0045c9e 1548 use_gcc_stdint=provide
1549 tm_file="${tm_file} hpux-stdint.h"
e364000d 1550 tmake_file="pa/t-pa t-slibgcc"
1551 d_target_objs="${d_target_objs} pa-d.o"
334c8279 1552 case ${enable_threads} in
1553 "")
1554 if test x$have_pthread_h = xyes ; then
1555 tmake_file="${tmake_file} pa/t-dce-thr"
1556 fi
1557 ;;
1558 yes | dce)
1559 tmake_file="${tmake_file} pa/t-dce-thr"
1560 ;;
bb607926 1561 esac
bb607926 1562 use_collect2=yes
8ad01423 1563 gas=yes
13b99879 1564 if test "x$with_dwarf2" != x; then
16b36e36 1565 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
13b99879 1566 dwarf2=no
1567 fi
bb607926 1568 ;;
1569hppa*64*-*-hpux11*)
8ab32933 1570 target_cpu_default="MASK_PA_11|MASK_PA_20"
cacee710 1571 if test x$gnu_ld = xyes
1572 then
8ab32933 1573 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
cacee710 1574 fi
8ad01423 1575 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1576 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1577 pa/pa-hpux11.h"
8ab32933 1578 case ${target} in
637c9296 1579 *-*-hpux11.[12]*)
8ab32933 1580 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
bd57250e 1581 extra_options="${extra_options} pa/pa-hpux1111.opt"
8ab32933 1582 ;;
637c9296 1583 *-*-hpux11.[3-9]*)
1584 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1585 extra_options="${extra_options} pa/pa-hpux1131.opt"
1586 ;;
8ab32933 1587 *)
1588 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1589 ;;
1590 esac
bd57250e 1591 extra_options="${extra_options} pa/pa-hpux.opt \
593c1adb 1592 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
e364000d 1593 tmake_file="pa/t-pa t-slibgcc"
1594 d_target_objs="${d_target_objs} pa-d.o"
120a2fed 1595 case x${enable_threads} in
4699015f 1596 x | xyes | xposix )
3ebc7dec 1597 thread_file=posix
120a2fed 1598 ;;
1599 esac
8ad01423 1600 gas=yes
43cb9222 1601 case ${target} in
1602 *-*-hpux11.[01]*)
1603 use_gcc_stdint=provide
1604 tm_file="${tm_file} hpux-stdint.h"
1605 ;;
1606 *-*-hpux11.[23]*)
1607 use_gcc_stdint=wrap
1608 tm_file="${tm_file} hpux-stdint.h"
1609 ;;
1610 esac
bb607926 1611 ;;
8ab32933 1612hppa[12]*-*-hpux11*)
1613 case ${target} in
1614 hppa1.1-*-* | hppa2*-*-*)
1615 target_cpu_default="MASK_PA_11"
1616 ;;
1617 esac
1618 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
bd57250e 1619 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
593c1adb 1620 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1621 hpux11.opt"
8ab32933 1622 case ${target} in
637c9296 1623 *-*-hpux11.[12]*)
8ab32933 1624 tm_file="${tm_file} pa/pa-hpux1111.h"
bd57250e 1625 extra_options="${extra_options} pa/pa-hpux1111.opt"
120a2fed 1626 ;;
637c9296 1627 *-*-hpux11.[3-9]*)
1628 tm_file="${tm_file} pa/pa-hpux1131.h"
1629 extra_options="${extra_options} pa/pa-hpux1131.opt"
1630 ;;
120a2fed 1631 esac
e364000d 1632 tmake_file="pa/t-pa t-slibgcc"
1633 d_target_objs="${d_target_objs} pa-d.o"
120a2fed 1634 case x${enable_threads} in
4699015f 1635 x | xyes | xposix )
3ebc7dec 1636 thread_file=posix
120a2fed 1637 ;;
1638 esac
bb607926 1639 use_collect2=yes
8ad01423 1640 gas=yes
43cb9222 1641 case ${target} in
1642 *-*-hpux11.[01]*)
1643 use_gcc_stdint=provide
1644 tm_file="${tm_file} hpux-stdint.h"
1645 ;;
1646 *-*-hpux11.[23]*)
1647 use_gcc_stdint=wrap
1648 tm_file="${tm_file} hpux-stdint.h"
1649 ;;
1650 esac
13b99879 1651 if test "x$with_dwarf2" != x; then
16b36e36 1652 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
13b99879 1653 dwarf2=no
1654 fi
bb607926 1655 ;;
571f1d3d 1656i[34567]86-*-darwin1[89]*)
1657 echo "Error: 32bit target is not supported after Darwin17" 1>&2
1658 ;;
ffd05090 1659i[34567]86-*-darwin*)
ed2b8f56 1660 need_64bit_isa=yes
ffa7199b 1661 # Baseline choice for a machine that allows m64 support.
1662 with_cpu=${with_cpu:-core2}
571f1d3d 1663 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch t-slibgcc"
1664 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
1665 ;;
1666x86_64-*-darwin1[89]* | x86_64-*-darwin2[01]*)
1667 # Only 64b from now
1668 with_cpu=${with_cpu:-core2}
a997b0d8 1669 tmake_file="${tmake_file} t-slibgcc"
ffd05090 1670 ;;
4a839b30 1671x86_64-*-darwin*)
ffa7199b 1672 with_cpu=${with_cpu:-core2}
571f1d3d 1673 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
1674 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
4a839b30 1675 ;;
1c26a2ee 1676i[34567]86-*-elfiamcu)
1677 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
1678 ;;
bb607926 1679i[34567]86-*-elf*)
f3449a3c 1680 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
bc831fe3 1681 ;;
1682x86_64-*-elf*)
f3449a3c 1683 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
bb607926 1684 ;;
6f93d1ba 1685x86_64-*-rtems*)
602fa1e9 1686 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/rtemself.h rtems.h"
6f93d1ba 1687 ;;
b433697b 1688i[34567]86-*-rdos*)
1689 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1690 ;;
1691x86_64-*-rdos*)
1692 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"
1693 tmake_file="i386/t-i386elf t-svr4"
1694 ;;
463553db 1695i[34567]86-*-dragonfly*)
1696 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1697 tmake_file="${tmake_file} i386/t-crtstuff"
1698 ;;
1699x86_64-*-dragonfly*)
1700 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"
1701 tmake_file="${tmake_file} i386/t-crtstuff"
1702 ;;
bb607926 1703i[34567]86-*-freebsd*)
d2307a72 1704 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
a8456aba 1705 ;;
1706x86_64-*-freebsd*)
d2307a72 1707 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"
bb607926 1708 ;;
f406b863 1709i[34567]86-*-netbsdelf*)
3ff28a9d 1710 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h"
f466b0a0 1711 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
f406b863 1712 ;;
8bc47d57 1713x86_64-*-netbsd*)
3ff28a9d 1714 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h"
f466b0a0 1715 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
8bc47d57 1716 ;;
d3ad7bb1 1717i[34567]86-*-openbsd*)
bcc9ac22 1718 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
8e6600a1 1719 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1a0fb050 1720 extra_options="${extra_options} openbsd.opt"
d3ad7bb1 1721 gas=yes
1722 gnu_ld=yes
d3ad7bb1 1723 ;;
51796b3a 1724x86_64-*-openbsd*)
1725 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1726 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1727 extra_options="${extra_options} openbsd.opt"
1728 gas=yes
1729 gnu_ld=yes
1730 ;;
79573034 1731i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
6396cc37 1732 # Intel 80386's running GNU/*
bb607926 1733 # with ELF format using glibc 2
6ee152ce 1734 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
6396cc37 1735 case ${target} in
54bb64fb 1736 i[34567]86-*-linux*)
1b455a16 1737 tm_file="${tm_file} linux.h linux-android.h"
1738 extra_options="${extra_options} linux-android.opt"
54bb64fb 1739 if test x$enable_targets = xall; then
ba102931 1740 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
54bb64fb 1741 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
b3fd46a0 1742 tmake_file="${tmake_file} i386/t-linux64"
596b2ba3 1743 x86_multilibs="${with_multilib_list}"
1744 if test "$x86_multilibs" = "default"; then
1745 x86_multilibs="m64,m32"
1746 fi
1747 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1748 for x86_multilib in ${x86_multilibs}; do
1749 case ${x86_multilib} in
1750 m32 | m64 | mx32)
1751 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1752 ;;
1753 *)
1754 echo "--with-multilib-list=${x86_with_multilib} not supported."
1755 exit 1
1756 esac
1757 done
1758 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
ed2b8f56 1759 need_64bit_isa=yes
f292755a 1760 if test x$with_cpu = x; then
f067c6b7 1761 if test x$with_cpu_64 = x; then
1762 with_cpu_64=generic
1763 fi
f292755a 1764 else
1765 case " $x86_cpus $x86_archs $x86_64_archs " in
1766 *" $with_cpu "*)
1767 ;;
1768 *)
1769 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1770 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1771 exit 1
1772 ;;
1773 esac
1774 fi
54bb64fb 1775 else
ba102931 1776 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
54bb64fb 1777 fi
1778 ;;
2c6c4996 1779 i[34567]86-*-kfreebsd*-gnu)
83dd7eef 1780 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
2c6c4996 1781 ;;
1782 i[34567]86-*-kopensolaris*-gnu)
83dd7eef 1783 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
2c6c4996 1784 ;;
1785 i[34567]86-*-gnu*)
83dd7eef 1786 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
2c6c4996 1787 ;;
6396cc37 1788 esac
bb607926 1789 ;;
79573034 1790x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
6ee152ce 1791 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
83dd7eef 1792 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
28a6c5e3 1793 case ${target} in
1c6e0788 1794 x86_64-*-linux*)
1b455a16 1795 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1796 extra_options="${extra_options} linux-android.opt"
2c6c4996 1797 ;;
1798 x86_64-*-kfreebsd*-gnu)
1799 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1800 ;;
28a6c5e3 1801 esac
237490bf 1802 tmake_file="${tmake_file} i386/t-linux64"
596b2ba3 1803 x86_multilibs="${with_multilib_list}"
1804 if test "$x86_multilibs" = "default"; then
d26d40c8 1805 case ${with_abi} in
1806 x32 | mx32)
1807 x86_multilibs="mx32"
1808 ;;
1809 *)
1810 x86_multilibs="m64,m32"
1811 ;;
1812 esac
596b2ba3 1813 fi
1814 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1815 for x86_multilib in ${x86_multilibs}; do
1816 case ${x86_multilib} in
1817 m32 | m64 | mx32)
1818 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1819 ;;
1820 *)
1821 echo "--with-multilib-list=${x86_with_multilib} not supported."
1822 exit 1
1823 esac
1824 done
1825 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
5c66405b 1826 ;;
bb607926 1827i[34567]86-pc-msdosdjgpp*)
1828 xm_file=i386/xm-djgpp.h
8c35683d 1829 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
638454a1 1830 native_system_header_dir=/dev/env/DJDIR/include
0c44645a 1831 extra_options="${extra_options} i386/djgpp.opt"
bb607926 1832 gnu_ld=yes
1833 gas=yes
a47075bb 1834 use_gcc_stdint=wrap
bb607926 1835 ;;
bb607926 1836i[34567]86-*-lynxos*)
d895dbf9 1837 xm_defines=POSIX
1838 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
237490bf 1839 tmake_file="${tmake_file} t-lynx"
0c44645a 1840 extra_options="${extra_options} lynx.opt"
d895dbf9 1841 thread_file=lynx
1842 gnu_ld=yes
1843 gas=yes
bb607926 1844 ;;
b1aac5f5 1845i[34567]86-*-nto-qnx*)
2b90ba90 1846 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
9453823e 1847 extra_options="${extra_options} i386/nto.opt"
b1aac5f5 1848 gnu_ld=yes
1849 gas=yes
1850 ;;
41e38a87 1851i[34567]86-*-rtems*)
f3449a3c 1852 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"
b69fc80a 1853 tmake_file="${tmake_file} i386/t-rtems"
bb607926 1854 ;;
0fd03648 1855i[34567]86-*-solaris2* | x86_64-*-solaris2*)
6f5b6a64 1856 # Set default arch_32 to pentium4, tune_32 to generic like the other
1857 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
3efb5d22 1858 with_arch_32=${with_arch_32:-pentium4}
be67f556 1859 with_tune_32=${with_tune_32:-generic}
fc99725b 1860 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
3efb5d22 1861 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
fc99725b 1862 tmake_file="$tmake_file i386/t-sol2"
3efb5d22 1863 need_64bit_isa=yes
1864 if test x$with_cpu = x; then
1865 if test x$with_cpu_64 = x; then
1866 with_cpu_64=generic
f292755a 1867 fi
3efb5d22 1868 else
1869 case " $x86_cpus $x86_archs $x86_64_archs " in
1870 *" $with_cpu "*)
1871 ;;
1872 *)
1873 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1874 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1875 exit 1
1876 ;;
1877 esac
1878 fi
bb607926 1879 ;;
0e50554f 1880i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae|i[4567]86-wrs-vxworks7|x86_64-wrs-vxworks7)
1881 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h"
1882 case ${target} in
1883 x86_64-*)
1884 need_64bit_isa=yes
1885 tm_file="${tm_file} i386/x86-64.h"
1886 ;;
1887 esac
1888 tm_file="${tm_file} vx-common.h"
2adf99fa 1889 case ${target} in
1890 *-vxworksae*)
ef90f3f3 1891 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
2adf99fa 1892 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
1893 ;;
1894 *)
ef90f3f3 1895 tm_file="${tm_file} vxworks.h i386/vxworks.h"
2adf99fa 1896 tmake_file="${tmake_file} i386/t-vxworks"
1897 ;;
1898 esac
d9799238 1899 ;;
17b3d2a8 1900i[34567]86-*-cygwin*)
615180dd 1901 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"
e1688c3e 1902 xm_file=i386/xm-cygwin.h
4dc4ff49 1903 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
dfc6c66c 1904 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
94117391 1905 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
74edde2f 1906 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
2637551a 1907 c_target_objs="${c_target_objs} msformat-c.o"
1908 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
bb607926 1909 if test x$enable_threads = xyes; then
8728e49b 1910 thread_file='posix'
bb607926 1911 fi
94117391 1912 default_use_cxa_atexit=yes
615180dd 1913 use_gcc_stdint=wrap
bb607926 1914 ;;
8f3115a2 1915x86_64-*-cygwin*)
1916 need_64bit_isa=yes
1917 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"
1918 xm_file=i386/xm-cygwin.h
1919 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
dfc6c66c 1920 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
94117391 1921 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
74edde2f 1922 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
8f3115a2 1923 c_target_objs="${c_target_objs} msformat-c.o"
1924 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1925 if test x$enable_threads = xyes; then
1926 thread_file='posix'
1927 fi
94117391 1928 default_use_cxa_atexit=yes
8f3115a2 1929 use_gcc_stdint=wrap
1930 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
1931 ;;
c8c521bb 1932i[34567]86-*-mingw* | x86_64-*-mingw*)
b550f036 1933 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
e1688c3e 1934 xm_file=i386/xm-mingw32.h
f9f68d35 1935 c_target_objs="${c_target_objs} winnt-c.o"
1936 cxx_target_objs="${cxx_target_objs} winnt-c.o"
1937 target_has_targetcm="yes"
a4f7c8f7 1938 case ${target} in
1939 x86_64-*-* | *-w64-*)
ed2b8f56 1940 need_64bit_isa=yes
a4f7c8f7 1941 ;;
1942 *)
1943 ;;
1944 esac
b550f036 1945 if test x$enable_threads = xposix ; then
1946 tm_file="${tm_file} i386/mingw-pthread.h"
1947 fi
1948 tm_file="${tm_file} i386/mingw32.h"
72f432d4 1949 # This makes the logic if mingw's or the w64 feature set has to be used
1950 case ${target} in
1951 *-w64-*)
ac0366be 1952 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
1953 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
72f432d4 1954 tm_file="${tm_file} i386/mingw-w64.h"
a4f7c8f7 1955 if test x$enable_targets = xall; then
1956 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
f292755a 1957 if test x$with_cpu = x; then
a4f7c8f7 1958 if test x$with_cpu_64 = x; then
1959 with_cpu_64=generic
1960 fi
f292755a 1961 else
1962 case " $x86_cpus $x86_archs $x86_64_archs " in
1963 *" $with_cpu "*)
1964 ;;
1965 *)
1966 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1967 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1968 exit 1
1969 ;;
1970 esac
1971 fi
a4f7c8f7 1972 fi
72f432d4 1973 ;;
1974 *)
72f432d4 1975 ;;
1976 esac
1977 tm_file="${tm_file} i386/mingw-stdint.h"
f9f68d35 1978 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
0767c2a8 1979 case ${target} in
aca9e986 1980 x86_64-w64-*)
0767c2a8 1981 tmake_file="${tmake_file} i386/t-mingw-w64"
1982 ;;
aca9e986 1983 i[34567]86-w64-*)
1984 tmake_file="${tmake_file} i386/t-mingw-w32"
1985 ;;
0767c2a8 1986 esac
638454a1 1987 native_system_header_dir=/mingw/include
dfc6c66c 1988 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
78e16ab5 1989 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
72f432d4 1990 case ${target} in
1991 *-w64-*)
1992 extra_options="${extra_options} i386/mingw-w64.opt"
1993 ;;
1994 *)
1995 ;;
1996 esac
74edde2f 1997 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
46f8e3b0 1998 c_target_objs="${c_target_objs} msformat-c.o"
1999 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
8ffcff2e 2000 gas=yes
2001 gnu_ld=yes
d91ef9b0 2002 default_use_cxa_atexit=yes
8953973a 2003 use_gcc_stdint=wrap
c89ba7eb 2004 case ${enable_threads} in
4dc4ff49 2005 "" | yes | win32)
2006 thread_file='win32'
b550f036 2007 ;;
2008 posix)
2009 thread_file='posix'
b550f036 2010 ;;
c89ba7eb 2011 esac
c8c521bb 2012 case ${target} in
2013 *mingw32crt*)
2014 tm_file="${tm_file} i386/crtdll.h"
2015 ;;
2016 *mingw32msv* | *mingw*)
170a37e8 2017 ;;
bb607926 2018 esac
2019 ;;
90369c4f 2020x86_64-*-fuchsia*)
2021 tmake_file="${tmake_file} i386/t-x86_64-elf"
2022 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
2023 ;;
bb607926 2024ia64*-*-elf*)
f3449a3c 2025 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
bb607926 2026 tmake_file="ia64/t-ia64"
2027 target_cpu_default="0"
2028 if test x$gas = xyes
2029 then
2030 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2031 fi
2032 if test x$gnu_ld = xyes
2033 then
2034 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
2035 fi
bb607926 2036 ;;
49b2e77d 2037ia64*-*-freebsd*)
0670e09b 2038 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
49b2e77d 2039 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
2040 tmake_file="${tmake_file} ia64/t-ia64"
49b2e77d 2041 ;;
bb607926 2042ia64*-*-linux*)
deb14f24 2043 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
23fd872d 2044 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
bb607926 2045 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
bb607926 2046 ;;
d838d791 2047ia64*-*-hpux*)
73f49bc2 2048 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
a997b0d8 2049 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
d838d791 2050 target_cpu_default="MASK_GNU_AS"
120a2fed 2051 case x$enable_threads in
c5e978ad 2052 x | xyes | xposix )
120a2fed 2053 thread_file=posix
2054 ;;
2055 esac
297cec9a 2056 use_collect2=no
23ebf0fe 2057 c_target_objs="ia64-c.o"
2058 cxx_target_objs="ia64-c.o"
593c1adb 2059 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
43cb9222 2060 use_gcc_stdint=wrap
2061 tm_file="${tm_file} hpux-stdint.h"
637c9296 2062 case ${target} in
2063 *-*-hpux11.3*)
2064 tm_file="${tm_file} ia64/hpux-unix2003.h"
2065 ;;
2066 esac
d838d791 2067 ;;
9b9a2528 2068ia64-hp-*vms*)
8f852c44 2069 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
2070 tmake_file="${tmake_file} ia64/t-ia64"
9b9a2528 2071 target_cpu_default="0"
2072 if test x$gas = xyes
2073 then
2074 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
2075 fi
b0a47c39 2076 extra_options="${extra_options} ia64/vms.opt"
9b9a2528 2077 ;;
54f12d76 2078iq2000*-*-elf*)
773dfb93 2079 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
54f12d76 2080 out_file=iq2000/iq2000.c
54f12d76 2081 md_file=iq2000/iq2000.md
2082 ;;
f6fe91e8 2083lm32-*-elf*)
f151e2ad 2084 tm_file="dbxelf.h elfos.h ${tm_file} newlib-stdint.h"
84600db5 2085 tmake_file="${tmake_file} lm32/t-lm32"
f6fe91e8 2086 ;;
431df6da 2087lm32-*-rtems*)
b4cebe6e 2088 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
84600db5 2089 tmake_file="${tmake_file} lm32/t-lm32"
72f8e79f 2090 tmake_file="${tmake_file} lm32/t-rtems"
431df6da 2091 ;;
f6fe91e8 2092lm32-*-uclinux*)
deb14f24 2093 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
84600db5 2094 tmake_file="${tmake_file} lm32/t-lm32"
f6fe91e8 2095 ;;
bb607926 2096m32r-*-elf*)
c876b1f0 2097 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
19cd32af 2098 ;;
467dc9aa 2099m32rle-*-elf*)
c876b1f0 2100 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
467dc9aa 2101 ;;
2102m32r-*-linux*)
deb14f24 2103 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
9551b60b 2104 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
467dc9aa 2105 gnu_ld=yes
467dc9aa 2106 if test x$enable_threads = xyes; then
2107 thread_file='posix'
2108 fi
2109 ;;
2110m32rle-*-linux*)
deb14f24 2111 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
9551b60b 2112 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
467dc9aa 2113 gnu_ld=yes
467dc9aa 2114 if test x$enable_threads = xyes; then
2115 thread_file='posix'
2116 fi
2117 ;;
6af9f7ea 2118m68k-*-elf* | fido-*-elf*)
278e2fd1 2119 case ${target} in
2120 fido-*-elf*)
2121 # Check that $with_cpu makes sense.
2122 case $with_cpu in
2123 "" | "fidoa")
2124 ;;
2125 *)
2126 echo "Cannot accept --with-cpu=$with_cpu"
2127 exit 1
2128 ;;
2129 esac
2130 with_cpu=fidoa
2131 ;;
2132 *)
2133 default_m68k_cpu=68020
2134 default_cf_cpu=5206
2135 ;;
2136 esac
f3449a3c 2137 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"
99570287 2138 tm_defines="${tm_defines} MOTOROLA=1"
278e2fd1 2139 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
2140 # Add multilibs for targets other than fido.
2141 case ${target} in
2142 fido-*-elf*)
2143 ;;
2144 *)
2145 tmake_file="$tmake_file m68k/t-mlibs"
2146 ;;
2147 esac
bb607926 2148 ;;
6af9f7ea 2149m68k*-*-netbsdelf*)
f84195ec 2150 default_m68k_cpu=68020
558b196a 2151 default_cf_cpu=5475
3ff28a9d 2152 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h"
f466b0a0 2153 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
3ff28a9d 2154 tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1"
124c3198 2155 ;;
984408e9 2156m68k*-*-openbsd*)
f84195ec 2157 default_m68k_cpu=68020
558b196a 2158 default_cf_cpu=5475
984408e9 2159 # needed to unconfuse gdb
f84195ec 2160 tm_defines="${tm_defines} OBSD_OLD_GAS"
8e6600a1 2161 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
1a0fb050 2162 extra_options="${extra_options} openbsd.opt"
237490bf 2163 tmake_file="t-openbsd m68k/t-openbsd"
984408e9 2164 # we need collect2 until our bug is fixed...
2165 use_collect2=yes
2166 ;;
8bc67792 2167m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
2168 # with uClibc, using the new GNU/Linux-style
2169 # ABI.
f84195ec 2170 default_m68k_cpu=68020
558b196a 2171 default_cf_cpu=5206
deb14f24 2172 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"
99c2a9e3 2173 extra_options="${extra_options} m68k/uclinux.opt"
d9993a19 2174 tm_defines="${tm_defines} MOTOROLA=1"
558b196a 2175 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
13285dde 2176 ;;
237490bf 2177m68k-*-linux*) # Motorola m68k's running GNU/Linux
bb607926 2178 # with ELF format using glibc 2
2179 # aka the GNU/Linux C library 6.
f84195ec 2180 default_m68k_cpu=68020
558b196a 2181 default_cf_cpu=5475
27f1c610 2182 with_arch=${with_arch:-m68k}
deb14f24 2183 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
fbdd0521 2184 extra_options="${extra_options} m68k/ieee.opt"
99570287 2185 tm_defines="${tm_defines} MOTOROLA=1"
27f1c610 2186 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
bb607926 2187 ;;
41e38a87 2188m68k-*-rtems*)
f84195ec 2189 default_m68k_cpu=68020
558b196a 2190 default_cf_cpu=5206
b69fc80a 2191 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
f3449a3c 2192 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"
99570287 2193 tm_defines="${tm_defines} MOTOROLA=1"
bb607926 2194 ;;
bb607926 2195mcore-*-elf)
7916fcc3 2196 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
bb607926 2197 tmake_file=mcore/t-mcore
58a8c75f 2198 inhibit_libc=true
bb607926 2199 ;;
d34b0d1e 2200microblaze*-linux*)
e975e345 2201 case $target in
2202 microblazeel-*)
2203 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2204 ;;
2205 microblaze-*)
2206 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2207 ;;
2208 esac
deb14f24 2209 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
c48df545 2210 tm_file="${tm_file} glibc-stdint.h"
d34b0d1e 2211 c_target_objs="${c_target_objs} microblaze-c.o"
2212 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
c48df545 2213 tmake_file="${tmake_file} microblaze/t-microblaze"
e975e345 2214 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
d34b0d1e 2215 ;;
ff219786 2216microblaze*-*-rtems*)
ad18d3ea 2217 case $target in
2218 microblazeel-*)
2219 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2220 ;;
2221 microblaze-*)
2222 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2223 ;;
2224 esac
ff219786 2225 tm_file="${tm_file} dbxelf.h"
2226 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2227 c_target_objs="${c_target_objs} microblaze-c.o"
2228 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2229 tmake_file="${tmake_file} microblaze/t-microblaze"
b69fc80a 2230 tmake_file="${tmake_file} microblaze/t-rtems"
ff219786 2231 ;;
98f2ac05 2232microblaze*-*-elf)
e975e345 2233 case $target in
2234 microblazeel-*)
2235 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2236 ;;
2237 microblaze-*)
2238 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2239 ;;
2240 esac
98f2ac05 2241 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
d34b0d1e 2242 c_target_objs="${c_target_objs} microblaze-c.o"
2243 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
98f2ac05 2244 tmake_file="${tmake_file} microblaze/t-microblaze"
d34b0d1e 2245 ;;
fb55f581 2246riscv*-*-linux*)
2247 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h"
2248 case "x${enable_multilib}" in
2249 xno) ;;
2250 xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;;
2251 *) echo "Unknown value for enable_multilib"; exit 1
2252 esac
2253 tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux"
2254 gnu_ld=yes
2255 gas=yes
2256 # Force .init_array support. The configure script cannot always
2257 # automatically detect that GAS supports it, yet we require it.
2258 gcc_cv_initfini_array=yes
2259 ;;
26dde94d 2260riscv*-*-elf* | riscv*-*-rtems*)
fb55f581 2261 tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h"
46765867 2262 case ${target} in
2263 *-*-rtems*)
2264 tm_file="${tm_file} rtems.h riscv/rtems.h"
2265 tmake_file="${tmake_file} riscv/t-rtems"
2266 ;;
2267 *)
2268 case "x${enable_multilib}" in
2269 xno) ;;
2270 xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;;
2271 *) echo "Unknown value for enable_multilib"; exit 1
2272 esac
fb55f581 2273 esac
2274 tmake_file="${tmake_file} riscv/t-riscv"
2275 gnu_ld=yes
2276 gas=yes
2277 # Force .init_array support. The configure script cannot always
2278 # automatically detect that GAS supports it, yet we require it.
2279 gcc_cv_initfini_array=yes
2280 ;;
7ea6a647 2281riscv*-*-freebsd*)
2282 tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
2283 tmake_file="${tmake_file} riscv/t-riscv"
2284 gnu_ld=yes
2285 gas=yes
2286 # Force .init_array support. The configure script cannot always
2287 # automatically detect that GAS supports it, yet we require it.
2288 gcc_cv_initfini_array=yes
2289 ;;
4ace673e 2290mips*-*-netbsd*) # NetBSD/mips, either endian.
b93bf04a 2291 target_cpu_default="MASK_ABICALLS"
3ff28a9d 2292 tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
f466b0a0 2293 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
bb607926 2294 ;;
a02ba4d0 2295mips*-img-linux*)
2296 tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h mips/linux-common.h mips/mti-linux.h"
2297 extra_options="${extra_options} linux-android.opt"
2298 tmake_file="${tmake_file} mips/t-img-linux"
2299 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
955fe9b7 2300 with_arch_32="mips32r6"
2301 with_arch_64="mips64r6"
a02ba4d0 2302 gnu_ld=yes
2303 gas=yes
2304 ;;
32108f3d 2305mips*-mti-linux*)
abf7fbd6 2306 tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h mips/linux-common.h mips/mti-linux.h"
f2ea04f5 2307 extra_options="${extra_options} linux-android.opt"
32108f3d 2308 tmake_file="${tmake_file} mips/t-mti-linux"
2309 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
955fe9b7 2310 with_arch_32="mips32r2"
2311 with_arch_64="mips64r2"
32108f3d 2312 gnu_ld=yes
2313 gas=yes
32108f3d 2314 ;;
7c83c1f7 2315mips*-*-linux*) # Linux MIPS, either endian.
abf7fbd6 2316 tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h mips/linux-common.h"
f2ea04f5 2317 extra_options="${extra_options} linux-android.opt"
69f36814 2318 case ${target} in
78645e70 2319 mipsisa32r6*)
2320 default_mips_arch=mips32r6
2321 ;;
7c83c1f7 2322 mipsisa32r2*)
257ccd46 2323 default_mips_arch=mips32r2
7c83c1f7 2324 ;;
2325 mipsisa32*)
257ccd46 2326 default_mips_arch=mips32
7c83c1f7 2327 ;;
69f36814 2328 mips64el-st-linux-gnu)
257ccd46 2329 default_mips_abi=n32
69f36814 2330 tm_file="${tm_file} mips/st.h"
2331 tmake_file="${tmake_file} mips/t-st"
7c83c1f7 2332 enable_mips_multilibs="yes"
69f36814 2333 ;;
fc84efeb 2334 mips64octeon*-*-linux*)
257ccd46 2335 default_mips_abi=n32
fc84efeb 2336 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2337 target_cpu_default=MASK_SOFT_FLOAT_ABI
7c83c1f7 2338 enable_mips_multilibs="yes"
fc84efeb 2339 ;;
78645e70 2340 mipsisa64r6*-*-linux*)
2341 default_mips_abi=n32
2342 default_mips_arch=mips64r6
2343 enable_mips_multilibs="yes"
2344 ;;
606c99b0 2345 mipsisa64r2*-*-linux*)
257ccd46 2346 default_mips_abi=n32
2347 default_mips_arch=mips64r2
7c83c1f7 2348 enable_mips_multilibs="yes"
2349 ;;
2350 mips64*-*-linux* | mipsisa64*-*-linux*)
257ccd46 2351 default_mips_abi=n32
7c83c1f7 2352 enable_mips_multilibs="yes"
606c99b0 2353 ;;
69f36814 2354 esac
b167b87f 2355 if test x$enable_targets = xall; then
7c83c1f7 2356 enable_mips_multilibs="yes"
2357 fi
2358 if test x$enable_mips_multilibs = xyes; then
b167b87f 2359 tmake_file="${tmake_file} mips/t-linux64"
b167b87f 2360 fi
bb607926 2361 ;;
eceb106a 2362mips*-mti-elf*)
c789b852 2363 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
eceb106a 2364 tmake_file="mips/t-mti-elf"
2365 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
955fe9b7 2366 with_arch_32="mips32r2"
2367 with_arch_64="mips64r2"
eceb106a 2368 ;;
a02ba4d0 2369mips*-img-elf*)
2370 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2371 tmake_file="mips/t-img-elf"
2372 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
955fe9b7 2373 with_arch_32="mips32r6"
2374 with_arch_64="mips64r6"
a02ba4d0 2375 ;;
5aeba334 2376mips*-sde-elf*)
c789b852 2377 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
9213d2eb 2378 tmake_file="mips/t-sde"
0b1d266f 2379 extra_options="${extra_options} mips/sde.opt"
68c9bc25 2380 case "${with_newlib}" in
2381 yes)
2382 # newlib / libgloss.
2383 ;;
2384 *)
2385 # MIPS toolkit libraries.
2386 tm_file="$tm_file mips/sdemtk.h"
2387 tmake_file="$tmake_file mips/t-sdemtk"
68c9bc25 2388 case ${enable_threads} in
2389 "" | yes | mipssde)
2390 thread_file='mipssde'
2391 ;;
2392 esac
2393 ;;
2394 esac
5aeba334 2395 case ${target} in
78645e70 2396 mipsisa32r6*)
2397 tm_defines="MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2398 ;;
5aeba334 2399 mipsisa32r2*)
2400 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2401 ;;
2402 mipsisa32*)
2403 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2404 ;;
78645e70 2405 mipsisa64r6*)
2406 tm_defines="MIPS_ISA_DEFAULT=69 MIPS_ABI_DEFAULT=ABI_N32"
2407 ;;
77a32a8e 2408 mipsisa64r2*)
2409 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2410 ;;
5aeba334 2411 mipsisa64*)
2412 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2413 ;;
2414 esac
2415 ;;
7583e786 2416mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2417mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
78645e70 2418mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
77a32a8e 2419mipsisa64-*-elf* | mipsisa64el-*-elf* | \
78645e70 2420mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2421mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
f3449a3c 2422 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
9213d2eb 2423 tmake_file="mips/t-isa3264"
7583e786 2424 case ${target} in
78645e70 2425 mipsisa32r6*)
2426 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37"
2427 ;;
7583e786 2428 mipsisa32r2*)
2429 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2430 ;;
2431 mipsisa32*)
2432 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2433 ;;
78645e70 2434 mipsisa64r6*)
2435 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=69"
2436 ;;
77a32a8e 2437 mipsisa64r2*)
2438 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2439 ;;
7583e786 2440 mipsisa64*)
2441 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2442 ;;
2443 esac
2444 case ${target} in
2445 mipsisa32*-*-elfoabi*)
2446 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2447 tm_file="${tm_file} mips/elfoabi.h"
2448 ;;
2449 mipsisa64*-*-elfoabi*)
2450 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2451 tm_file="${tm_file} mips/elfoabi.h"
2452 ;;
2453 *-*-elf*)
2454 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2455 ;;
2456 esac
5381547d 2457 ;;
2857c21b 2458mipsisa64sr71k-*-elf*)
f3449a3c 2459 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2857c21b 2460 tmake_file=mips/t-sr71k
515fdcc2 2461 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2857c21b 2462 ;;
19c56034 2463mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
f3449a3c 2464 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
9213d2eb 2465 tmake_file="mips/t-elf mips/t-sb1"
515fdcc2 2466 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
19c56034 2467 ;;
60b34f30 2468mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
f3449a3c 2469 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
9213d2eb 2470 tmake_file="mips/t-elf"
bb607926 2471 ;;
60b34f30 2472mips64r5900-*-elf* | mips64r5900el-*-elf*)
c789b852 2473 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
60b34f30 2474 tmake_file="mips/t-elf"
2475 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2476 ;;
f4deb416 2477mips64-*-elf* | mips64el-*-elf*)
f3449a3c 2478 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
9213d2eb 2479 tmake_file="mips/t-elf"
515fdcc2 2480 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
bb607926 2481 ;;
2857c21b 2482mips64vr-*-elf* | mips64vrel-*-elf*)
f3449a3c 2483 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2857c21b 2484 tmake_file=mips/t-vr
9d463647 2485 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2857c21b 2486 ;;
f4deb416 2487mips64orion-*-elf* | mips64orionel-*-elf*)
f3449a3c 2488 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
9213d2eb 2489 tmake_file="mips/t-elf"
515fdcc2 2490 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
bb607926 2491 ;;
742d48c2 2492mips*-*-rtems*)
f3449a3c 2493 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
b69fc80a 2494 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
bb607926 2495 ;;
d9799238 2496mips-wrs-vxworks)
e49cee06 2497 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
d9799238 2498 tmake_file="${tmake_file} mips/t-vxworks"
d9799238 2499 ;;
f4deb416 2500mipstx39-*-elf* | mipstx39el-*-elf*)
f3449a3c 2501 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
9213d2eb 2502 tmake_file="mips/t-r3900"
bb607926 2503 ;;
68cbb7e3 2504mmix-knuth-mmixware)
f3449a3c 2505 tm_file="${tm_file} newlib-stdint.h"
f3449a3c 2506 use_gcc_stdint=wrap
68cbb7e3 2507 ;;
bb607926 2508mn10300-*-*)
05381348 2509 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
bb607926 2510 if test x$stabs = xyes
2511 then
2512 tm_file="${tm_file} dbx.h"
2513 fi
2514 use_collect2=no
f3449a3c 2515 use_gcc_stdint=wrap
bb607926 2516 ;;
e4a25868 2517msp430*-*-*)
2518 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2519 c_target_objs="msp430-c.o"
2520 cxx_target_objs="msp430-c.o"
e4a25868 2521 tmake_file="${tmake_file} msp430/t-msp430"
bb4cc462 2522 extra_objs="${extra_objs} msp430-devices.o"
2523 extra_gcc_objs="driver-msp430.o msp430-devices.o"
f0a47dba 2524 # Enable .init_array unless it has been explicitly disabled.
55d616ea 2525 # The MSP430 EABI mandates the use of .init_array, and the Newlib CRT
2526 # code since mid-2019 expects it.
f0a47dba 2527 if test x${disable_initfini_array} != xyes; then
2528 gcc_cv_initfini_array=yes
2529 fi
e4a25868 2530 ;;
a5a22b4f 2531nds32*-*-*)
eae21ed1 2532 target_cpu_default="0"
2533 tm_defines="${tm_defines}"
a5a22b4f 2534 case ${target} in
2535 nds32le*-*-*)
2536 ;;
2537 nds32be-*-*)
2538 target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN"
2539 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2540 ;;
2541 esac
2542 case ${target} in
2543 nds32*-*-elf*)
2544 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h"
2545 tmake_file="nds32/t-nds32 nds32/t-elf"
2546 ;;
2547 nds32*-*-linux*)
2548 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2549 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
0be984ed 2550 gcc_cv_initfini_array=yes
a5a22b4f 2551 ;;
2552 esac
b7968556 2553
a5a22b4f 2554 # Handle --enable-default-relax setting.
2555 if test x${enable_default_relax} = xyes; then
2556 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1"
2557 fi
b7968556 2558 # Handle --with-ext-dsp
2559 if test x${with_ext_dsp} = xyes; then
2560 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1"
2561 fi
eae21ed1 2562 ;;
de65406d 2563nios2-*-*)
2564 tm_file="elfos.h ${tm_file}"
2565 tmake_file="${tmake_file} nios2/t-nios2"
2566 case ${target} in
2567 nios2-*-linux*)
2568 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2569 ;;
2570 nios2-*-elf*)
2571 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2572 extra_options="${extra_options} nios2/elf.opt"
2573 ;;
f7c4fafb 2574 nios2-*-rtems*)
2575 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2576 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2577 ;;
de65406d 2578 esac
2579 ;;
8ce80784 2580nvptx-*)
2581 tm_file="${tm_file} newlib-stdint.h"
a20d2c4d 2582 use_gcc_stdint=wrap
8ce80784 2583 tmake_file="nvptx/t-nvptx"
9c08fbb3 2584 if test x$enable_as_accelerator = xyes; then
2585 extra_programs="${extra_programs} mkoffload\$(exeext)"
2586 tm_file="${tm_file} nvptx/offload.h"
2587 fi
8ce80784 2588 ;;
d61fdfe7 2589or1k*-*-*)
2590 tm_file="elfos.h ${tm_file}"
2591 tmake_file="${tmake_file} or1k/t-or1k"
2592 # Force .init_array support. The configure script cannot always
2593 # automatically detect that GAS supports it, yet we require it.
2594 gcc_cv_initfini_array=yes
2595
2596 # Handle --with-multilib-list=...
2597 or1k_multilibs="${with_multilib_list}"
2598 if test "$or1k_multilibs" = "default"; then
2599 or1k_multilibs="mcmov,msoft-mul,msoft-div"
2600 fi
2601 or1k_multilibs=`echo $or1k_multilibs | sed -e 's/,/ /g'`
2602 for or1k_multilib in ${or1k_multilibs}; do
2603 case ${or1k_multilib} in
2604 mcmov | msext | msfimm | \
64ee4f69 2605 mror | mrori | \
34f4be08 2606 mhard-float | mdouble-float | munordered-float | msoft-float | \
d61fdfe7 2607 mhard-div | mhard-mul | \
2608 msoft-div | msoft-mul )
2609 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${or1k_multilib}"
2610 ;;
2611 *)
2612 echo "--with-multilib-list=${with_multilib_list} not supported."
2613 exit 1
2614 esac
2615 done
2616 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
2617
2618 case ${target} in
2619 or1k*-*-linux*)
2620 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h"
2621 tm_file="${tm_file} or1k/linux.h"
2622 ;;
2623 or1k*-*-elf*)
2624 tm_file="${tm_file} newlib-stdint.h or1k/elf.h"
2625 extra_options="${extra_options} or1k/elf.opt"
2626 ;;
2627 or1k*-*-rtems*)
2628 tm_file="${tm_file} newlib-stdint.h or1k/rtems.h rtems.h"
2629 tmake_file="${tmake_file} or1k/t-rtems"
2630 ;;
2631 esac
2632 ;;
bb607926 2633pdp11-*-*)
f3449a3c 2634 tm_file="${tm_file} newlib-stdint.h"
2635 use_gcc_stdint=wrap
bb607926 2636 ;;
0ac7fc08 2637# port not yet contributed
2638#powerpc-*-openbsd*)
a23b9c51 2639# tmake_file="${tmake_file} rs6000/t-fprules"
0ac7fc08 2640# extra_headers=
2641# ;;
17ac16a1 2642powerpc-*-darwin*)
571f1d3d 2643 extra_options="${extra_options} ${cpu_type}/darwin.opt"
8949381a 2644 case ${target} in
571f1d3d 2645 *-darwin1[0-9]* | *-darwin9*)
2646 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2647 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2648 ;;
2649 *-darwin8*)
2650 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2651 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
2652 tm_file="${tm_file} ${cpu_type}/darwin8.h"
9b1f316f 2653 ;;
2654 *-darwin7*)
571f1d3d 2655 tm_file="${tm_file} ${cpu_type}/darwin7.h"
9b1f316f 2656 ;;
571f1d3d 2657 *-darwin[456]*)
2658 # Earlier - ingle arch, with 32b only
2659 # OS X 10.0, the first edition is Darwin4
9b1f316f 2660 ;;
8949381a 2661 esac
a997b0d8 2662 tmake_file="${tmake_file} t-slibgcc"
17ac16a1 2663 ;;
84eba009 2664powerpc64-*-darwin*)
84eba009 2665 extra_options="${extra_options} ${cpu_type}/darwin.opt"
571f1d3d 2666 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
2667 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
84eba009 2668 ;;
2ac000bb 2669powerpc*-*-freebsd*)
ab6b1bb4 2670 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${fbsd_tm_file} rs6000/sysv4.h"
16ac04e7 2671 extra_options="${extra_options} rs6000/sysv4.opt"
2ac000bb 2672 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
c2bac6b7 2673 case ${target} in
2ac000bb 2674 powerpc64*)
2675 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2676 tmake_file="${tmake_file} rs6000/t-freebsd64"
2677 extra_options="${extra_options} rs6000/linux64.opt"
2678 ;;
2679 *)
2680 tm_file="${tm_file} rs6000/freebsd.h"
2681 ;;
2682 esac
327811ee 2683 ;;
93006578 2684powerpc-*-netbsd*)
ab6b1bb4 2685 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
f466b0a0 2686 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
5eeaefac 2687 tmake_file="${tmake_file} rs6000/t-netbsd"
16ac04e7 2688 extra_options="${extra_options} rs6000/sysv4.opt"
93006578 2689 ;;
bbf524e7 2690powerpc-*-eabisimaltivec*)
ab6b1bb4 2691 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h rs6000/eabialtivec.h"
16ac04e7 2692 extra_options="${extra_options} rs6000/sysv4.opt"
a23b9c51 2693 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
f3449a3c 2694 use_gcc_stdint=wrap
bbf524e7 2695 ;;
bb607926 2696powerpc-*-eabisim*)
ab6b1bb4 2697 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h"
16ac04e7 2698 extra_options="${extra_options} rs6000/sysv4.opt"
a23b9c51 2699 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
f3449a3c 2700 use_gcc_stdint=wrap
bb607926 2701 ;;
2702powerpc-*-elf*)
ab6b1bb4 2703 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
16ac04e7 2704 extra_options="${extra_options} rs6000/sysv4.opt"
a23b9c51 2705 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
bb607926 2706 ;;
553c09a8 2707powerpc-*-eabialtivec*)
ab6b1bb4 2708 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabialtivec.h"
16ac04e7 2709 extra_options="${extra_options} rs6000/sysv4.opt"
a23b9c51 2710 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
f3449a3c 2711 use_gcc_stdint=wrap
553c09a8 2712 ;;
bb607926 2713powerpc-*-eabi*)
ab6b1bb4 2714 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h"
16ac04e7 2715 extra_options="${extra_options} rs6000/sysv4.opt"
a23b9c51 2716 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
f3449a3c 2717 use_gcc_stdint=wrap
bb607926 2718 ;;
2719powerpc-*-rtems*)
ab6b1bb4 2720 tm_file="rs6000/biarch64.h ${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/rtems.h rtems.h"
f78795cf 2721 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
b69fc80a 2722 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
bb607926 2723 ;;
d80dc920 2724powerpc*-*-linux*)
cdfc6004 2725 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h freebsd-spec.h rs6000/sysv4.h"
16ac04e7 2726 extra_options="${extra_options} rs6000/sysv4.opt"
7bb12776 2727 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
4c866b9b 2728 extra_objs="$extra_objs rs6000-linux.o"
d80dc920 2729 case ${target} in
2730 powerpc*le-*-*)
24038ccc 2731 tm_file="${tm_file} rs6000/sysv4le.h" ;;
d80dc920 2732 esac
7bb12776 2733 case ${target}:${with_cpu} in
2734 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2735 esac
2736 maybe_biarch=${cpu_is_64bit}
2737 case ${enable_targets} in
2738 *powerpc64*) maybe_biarch=yes ;;
bcfd2aea 2739 all) maybe_biarch=yes ;;
7bb12776 2740 esac
7bb12776 2741 case ${target}:${enable_targets}:${maybe_biarch} in
2742 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2743 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2744 | powerpcle-*:*powerpc64le*:yes)
cc5ffbb8 2745 if test x$cpu_is_64bit = xyes; then
2746 tm_file="${tm_file} rs6000/default64.h"
2747 fi
f3449a3c 2748 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
cc5ffbb8 2749 tmake_file="$tmake_file rs6000/t-linux64"
24038ccc 2750 case ${target} in
2751 powerpc*le-*-*)
2752 tmake_file="$tmake_file rs6000/t-linux64le"
2753 case ${enable_targets} in
2754 all | *powerpc64-* | *powerpc-*)
2755 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2756 esac ;;
2757 *)
2758 case ${enable_targets} in
2759 all | *powerpc64le-* | *powerpcle-*)
2760 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2761 esac ;;
2762 esac
e168332d 2763 extra_options="${extra_options} rs6000/linux64.opt"
cc5ffbb8 2764 ;;
7bb12776 2765 powerpc64*)
2766 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
2767 extra_options="${extra_options} rs6000/linux64.opt"
2768 tmake_file="${tmake_file} rs6000/t-linux"
2769 ;;
cc5ffbb8 2770 *)
f3449a3c 2771 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
7bb12776 2772 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
cc5ffbb8 2773 ;;
2774 esac
8d40ea45 2775 case ${target} in
fef79628 2776 powerpc*-*-linux*ppc476*)
2777 tm_file="${tm_file} rs6000/476.h"
2778 extra_options="${extra_options} rs6000/476.opt" ;;
8d40ea45 2779 powerpc*-*-linux*altivec*)
2780 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
8d40ea45 2781 esac
e5b0ce4f 2782 case ${target} in
2783 *-linux*-musl*)
2784 enable_secureplt=yes ;;
2785 esac
197f58fa 2786 if test x${enable_secureplt} = xyes; then
2787 tm_file="rs6000/secureplt.h ${tm_file}"
2788 fi
bb607926 2789 ;;
061339f2 2790powerpc-wrs-vxworks*)
ab6b1bb4 2791 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
a23b9c51 2792 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
16ac04e7 2793 extra_options="${extra_options} rs6000/sysv4.opt"
805e22b2 2794 extra_headers=ppc-asm.h
e6eccdb3 2795 case ${target} in
6c352a95 2796 *-vxworksmils*)
bf0ea9ad 2797 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
6c352a95 2798 tmake_file="${tmake_file} rs6000/t-vxworksmils"
2799 ;;
e6eccdb3 2800 *-vxworksae*)
bf0ea9ad 2801 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
e6eccdb3 2802 tmake_file="${tmake_file} rs6000/t-vxworksae"
2803 ;;
2804 *-vxworks*)
bf0ea9ad 2805 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
e6eccdb3 2806 ;;
2807 esac
805e22b2 2808 ;;
d895dbf9 2809powerpc-*-lynxos*)
2810 xm_defines=POSIX
ab6b1bb4 2811 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
d895dbf9 2812 tmake_file="t-lynx rs6000/t-lynx"
16ac04e7 2813 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
d895dbf9 2814 thread_file=lynx
2815 gnu_ld=yes
2816 gas=yes
2817 ;;
bb607926 2818powerpcle-*-elf*)
ab6b1bb4 2819 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
a23b9c51 2820 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
16ac04e7 2821 extra_options="${extra_options} rs6000/sysv4.opt"
bb607926 2822 ;;
2823powerpcle-*-eabisim*)
ab6b1bb4 2824 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/eabisim.h"
a23b9c51 2825 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
16ac04e7 2826 extra_options="${extra_options} rs6000/sysv4.opt"
f3449a3c 2827 use_gcc_stdint=wrap
bb607926 2828 ;;
2829powerpcle-*-eabi*)
ab6b1bb4 2830 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h"
a23b9c51 2831 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
16ac04e7 2832 extra_options="${extra_options} rs6000/sysv4.opt"
f3449a3c 2833 use_gcc_stdint=wrap
bb607926 2834 ;;
48aa9227 2835pru*-*-*)
2836 tm_file="elfos.h newlib-stdint.h ${tm_file}"
2837 tmake_file="${tmake_file} pru/t-pru"
2838 extra_objs="pru-pragma.o pru-passes.o"
2839 use_gcc_stdint=wrap
2840 ;;
67429b36 2841rs6000-ibm-aix6.* | powerpc-ibm-aix6.*)
b5e8a0bc 2842 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
a997b0d8 2843 tmake_file="rs6000/t-aix52 t-slibgcc"
0cc77516 2844 extra_options="${extra_options} rs6000/aix64.opt"
2845 use_collect2=yes
2846 thread_file='aix'
b5e8a0bc 2847 use_gcc_stdint=wrap
4e9e79a9 2848 default_use_cxa_atexit=yes
67429b36 2849 ;;
90c3ff50 2850rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
67429b36 2851 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
2852 tmake_file="rs6000/t-aix52 t-slibgcc"
90c3ff50 2853 extra_options="${extra_options} rs6000/aix64.opt"
2854 use_collect2=yes
2855 thread_file='aix'
2856 use_gcc_stdint=wrap
90c3ff50 2857 default_use_cxa_atexit=yes
2858 ;;
2859rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
2860 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
2861 tmake_file="rs6000/t-aix52 t-slibgcc"
67429b36 2862 extra_options="${extra_options} rs6000/aix64.opt"
2863 use_collect2=yes
2864 thread_file='aix'
2865 use_gcc_stdint=wrap
4e9e79a9 2866 default_use_cxa_atexit=yes
0cc77516 2867 ;;
78e515f7 2868rl78-*-elf*)
2869 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2870 target_has_targetm_common=no
2871 c_target_objs="rl78-c.o"
2872 cxx_target_objs="rl78-c.o"
2873 tmake_file="${tmake_file} rl78/t-rl78"
2874 ;;
24833e1a 2875rx-*-elf*)
3be74046 2876 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
24833e1a 2877 tmake_file="${tmake_file} rx/t-rx"
00a94423 2878 extra_options="${extra_options} rx/elf.opt"
2879 ;;
2880rx-*-linux*)
2881 tm_file="elfos.h linux.h glibc-stdint.h rx/linux.h ../../libgcc/config/rx/rx-abi.h"
2882 tmake_file="${tmake_file} rx/t-linux"
24833e1a 2883 ;;
582b17a6 2884s390-*-linux*)
deb14f24 2885 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
07f32359 2886 c_target_objs="${c_target_objs} s390-c.o"
2887 cxx_target_objs="${cxx_target_objs} s390-c.o"
5cd72ba2 2888 if test x$enable_targets = xall; then
2889 tmake_file="${tmake_file} s390/t-linux64"
2890 fi
07f32359 2891 tmake_file="${tmake_file} s390/t-s390"
346e8a0c 2892 ;;
582b17a6 2893s390x-*-linux*)
deb14f24 2894 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
f2ea04f5 2895 tm_p_file="linux-protos.h s390/s390-protos.h"
07f32359 2896 c_target_objs="${c_target_objs} s390-c.o"
2897 cxx_target_objs="${cxx_target_objs} s390-c.o"
48de175f 2898 md_file=s390/s390.md
b5ccaa7b 2899 extra_modes=s390/s390-modes.def
48de175f 2900 out_file=s390/s390.c
07f32359 2901 tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
346e8a0c 2902 ;;
7c1f201b 2903s390x-ibm-tpf*)
07f32359 2904 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
2905 tm_p_file=s390/s390-protos.h
2906 c_target_objs="${c_target_objs} s390-c.o"
2907 cxx_target_objs="${cxx_target_objs} s390-c.o"
2908 md_file=s390/s390.md
2909 extra_modes=s390/s390-modes.def
2910 out_file=s390/s390.c
2911 thread_file='tpf'
9f88bc9d 2912 extra_options="${extra_options} s390/tpf.opt"
07f32359 2913 tmake_file="${tmake_file} s390/t-s390"
7c1f201b 2914 ;;
6af9f7ea 2915sh-*-elf* | sh[12346l]*-*-elf* | \
ccf1c0f1 2916 sh-*-linux* | sh[2346lbe]*-*-linux* | \
9a9b5abf 2917 sh-*-netbsdelf* | shl*-*-netbsdelf*)
07168dd9 2918 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
2919 if test x${with_endian} = x; then
2920 case ${target} in
2921 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
2922 shbe-*-* | sheb-*-*) with_endian=big,little ;;
2923 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
9a9b5abf 2924 shl* | sh*-*-linux* | \
2925 sh-superh-elf) with_endian=little,big ;;
07168dd9 2926 sh[1234]*-*-*) with_endian=big ;;
2927 *) with_endian=big,little ;;
2928 esac
2929 fi
f555bf81 2930 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
2931 # First word : the default endian.
2932 # Second word: the secondary endian (optional).
07168dd9 2933 case ${with_endian} in
f555bf81 2934 big) TM_ENDIAN_CONFIG=mb ;;
2935 little) TM_ENDIAN_CONFIG=ml ;;
2936 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
2937 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
07168dd9 2938 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
2939 esac
2940 case ${with_endian} in
2941 little*) tm_file="sh/little.h ${tm_file}" ;;
2942 esac
9bc320a5 2943 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
09c6646e 2944 case ${target} in
07168dd9 2945 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
bcc58dc6 2946 if test x$enable_fdpic = xyes; then
2947 tm_defines="$tm_defines FDPIC_DEFAULT=1"
2948 fi
deb14f24 2949 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
f466b0a0 2950 sh*-*-netbsd*)
3ff28a9d 2951 tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h"
f466b0a0 2952 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2953
2954 ;;
cfcf8539 2955 sh*-superh-elf) if test x$with_libgloss != xno; then
2956 with_libgloss=yes
2957 tm_file="${tm_file} sh/newlib.h"
2958 fi
0e6b6360 2959 tm_file="${tm_file} sh/embed-elf.h"
cfcf8539 2960 tm_file="${tm_file} sh/superh.h"
cfcf8539 2961 extra_options="${extra_options} sh/superh.opt" ;;
65a1f1e9 2962 *) if test x$with_newlib = xyes \
2963 && test x$with_libgloss = xyes; then
2964 tm_file="${tm_file} sh/newlib.h"
2965 fi
2966 tm_file="${tm_file} sh/embed-elf.h" ;;
07168dd9 2967 esac
2968 case ${target} in
07168dd9 2969 *-*-netbsd)
07168dd9 2970 ;;
f3449a3c 2971 *-*-elf*)
2972 tm_file="${tm_file} newlib-stdint.h"
2973 ;;
493914a8 2974 esac
07168dd9 2975 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
2976 case `echo ${target} | sed 's/e[lb]-/-/'` in
9435e831 2977 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
2978 sh4a_single*) sh_cpu_target=sh4a-single ;;
2979 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
2980 sh4al) sh_cpu_target=sh4al ;;
2981 sh4a*) sh_cpu_target=sh4a ;;
07168dd9 2982 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
2983 sh4_single*) sh_cpu_target=sh4-single ;;
2984 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
2985 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
2986 sh3e*) sh_cpu_target=sh3e ;;
2987 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
7105fb72 2988 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
2989 sh2a_single*) sh_cpu_target=sh2a-single ;;
2990 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
2991 sh2a*) sh_cpu_target=sh2a ;;
07168dd9 2992 sh2e*) sh_cpu_target=sh2e ;;
2993 sh2*) sh_cpu_target=sh2 ;;
2994 *) sh_cpu_target=sh1 ;;
aa76b2b5 2995 esac
65a1f1e9 2996 # did the user say --without-fp ?
2997 if test x$with_fp = xno; then
2998 case ${sh_cpu_target} in
65a1f1e9 2999 sh4al | sh1) ;;
3000 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
3001 sh4*) sh_cpu_target=sh4-nofpu ;;
3002 sh3*) sh_cpu_target=sh3 ;;
3003 sh2a*) sh_cpu_target=sh2a-nofpu ;;
3004 sh2*) sh_cpu_target=sh2 ;;
3005 *) echo --without-fp not available for $target: ignored
3006 esac
3007 tm_defines="$tm_defines STRICT_NOFPU=1"
3008 fi
07168dd9 3009 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
3010 case $sh_cpu_default in
7105fb72 3011 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
9435e831 3012 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
99b0f6d9 3013 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
eb4e5153 3014 sh3e | sh3 | sh2e | sh2 | sh1) ;;
07168dd9 3015 "") sh_cpu_default=${sh_cpu_target} ;;
3016 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
febf5bcd 3017 esac
07168dd9 3018 sh_multilibs=${with_multilib_list}
f555bf81 3019 if test "$sh_multilibs" = "default" ; then
07168dd9 3020 case ${target} in
3021 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
07168dd9 3022 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
9fe603c3 3023 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
07168dd9 3024 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
7105fb72 3025 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
07168dd9 3026 esac
65a1f1e9 3027 if test x$with_fp = xno; then
3028 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`"
3029 fi
07168dd9 3030 fi
3a6994f8 3031 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
07168dd9 3032 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
f555bf81 3033 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
b56481ad 3034 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
07168dd9 3035 for sh_multilib in ${sh_multilibs}; do
3036 case ${sh_multilib} in
f555bf81 3037 m1 | m2 | m2e | m3 | m3e | \
3038 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
3039 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
9a9b5abf 3040 m2a | m2a-single | m2a-single-only | m2a-nofpu)
f555bf81 3041 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
3042 # It is passed to MULTIILIB_OPTIONS verbatim.
3043 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
3044 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
07168dd9 3045 ;;
f555bf81 3046 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
3047 # It is passed the MULTILIB_EXCEPTIONS verbatim.
3048 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
07168dd9 3049 *)
3050 echo "with_multilib_list=${sh_multilib} not supported."
3051 exit 1
3052 ;;
3053 esac
3054 done
f555bf81 3055 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
3a6994f8 3056 if test x${enable_incomplete_targets} = xyes ; then
9a9b5abf 3057 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
07168dd9 3058 fi
fa22494c 3059 tm_file="$tm_file ./sysroot-suffix.h"
3060 tmake_file="$tmake_file t-sysroot-suffix"
87e19636 3061 ;;
26f6dfe2 3062sh-*-rtems*)
b69fc80a 3063 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
9bc320a5 3064 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
26f6dfe2 3065 ;;
d9799238 3066sh-wrs-vxworks)
237490bf 3067 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
9bc320a5 3068 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
d9799238 3069 ;;
bb607926 3070sparc-*-elf*)
1bb0ad55 3071 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
b0168e11 3072 case ${target} in
3073 *-leon-*)
9e64c9a4 3074 tmake_file="sparc/t-sparc sparc/t-leon"
b0168e11 3075 ;;
3076 *-leon[3-9]*)
9e64c9a4 3077 tmake_file="sparc/t-sparc sparc/t-leon3"
b0168e11 3078 ;;
3079 *)
9e64c9a4 3080 tmake_file="sparc/t-sparc sparc/t-elf"
b0168e11 3081 ;;
3082 esac
bb607926 3083 ;;
a711a067 3084sparc-*-rtems*)
1bb0ad55 3085 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
e7e4edaa 3086 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
a711a067 3087 ;;
3088sparc-*-linux*)
8da0577c 3089 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
a9341855 3090 extra_options="${extra_options} sparc/long-double-switch.opt"
b0168e11 3091 case ${target} in
3092 *-leon-*)
9e64c9a4 3093 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
b0168e11 3094 ;;
3095 *-leon[3-9]*)
9e64c9a4 3096 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
b0168e11 3097 ;;
3098 *)
a997b0d8 3099 tmake_file="${tmake_file} sparc/t-sparc"
b0168e11 3100 ;;
3101 esac
1168681b 3102 if test x$enable_targets = xall; then
3103 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
64c6f17e 3104 tmake_file="${tmake_file} sparc/t-linux64"
1168681b 3105 else
3106 tm_file="${tm_file} sparc/linux.h"
4063b198 3107 tmake_file="${tmake_file} sparc/t-linux"
1168681b 3108 fi
bb607926 3109 ;;
a711a067 3110sparc-*-netbsdelf*)
3ff28a9d 3111 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
f466b0a0 3112 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
a711a067 3113 extra_options="${extra_options} sparc/long-double-switch.opt"
9e64c9a4 3114 tmake_file="${tmake_file} sparc/t-sparc"
9afa4711 3115 ;;
8acfe9c6 3116sparc*-*-solaris2*)
fc99725b 3117 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
8fde03ba 3118 case ${target} in
8acfe9c6 3119 sparc64-*-* | sparcv9-*-*)
b95fe851 3120 tm_file="sparc/default64.h ${tm_file}"
f3449a3c 3121 ;;
8acfe9c6 3122 *)
3123 test x$with_cpu != x || with_cpu=v9
517cabaa 3124 ;;
8fde03ba 3125 esac
fc99725b 3126 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
bb607926 3127 ;;
723e1902 3128sparc-wrs-vxworks)
1bb0ad55 3129 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
9e64c9a4 3130 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
723e1902 3131 ;;
bb607926 3132sparc64-*-elf*)
1bb0ad55 3133 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
7abb12da 3134 extra_options="${extra_options}"
9e64c9a4 3135 tmake_file="${tmake_file} sparc/t-sparc"
bb607926 3136 ;;
a711a067 3137sparc64-*-rtems*)
1bb0ad55 3138 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
7abb12da 3139 extra_options="${extra_options}"
b69fc80a 3140 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
a711a067 3141 ;;
3142sparc64-*-linux*)
b95fe851 3143 tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/default64.h sparc/linux64.h sparc/tso.h"
a711a067 3144 extra_options="${extra_options} sparc/long-double-switch.opt"
a997b0d8 3145 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
a711a067 3146 ;;
cf481f89 3147sparc64-*-freebsd*|ultrasparc-*-freebsd*)
3148 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
a9341855 3149 extra_options="${extra_options} sparc/long-double-switch.opt"
cf481f89 3150 case "x$with_cpu" in
68345096 3151 xultrasparc) ;;
cf481f89 3152 x) with_cpu=ultrasparc ;;
3153 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
3154 esac
9e64c9a4 3155 tmake_file="${tmake_file} sparc/t-sparc"
cf481f89 3156 ;;
1897a3df 3157sparc64-*-netbsd*)
1897a3df 3158 tm_file="sparc/biarch64.h ${tm_file}"
3ff28a9d 3159 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h"
f466b0a0 3160 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
a9341855 3161 extra_options="${extra_options} sparc/long-double-switch.opt"
9e64c9a4 3162 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
1897a3df 3163 ;;
a711a067 3164sparc64-*-openbsd*)
1bb0ad55 3165 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
a711a067 3166 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
1a0fb050 3167 extra_options="${extra_options} openbsd.opt"
7abb12da 3168 extra_options="${extra_options}"
a711a067 3169 gas=yes gnu_ld=yes
3170 with_cpu=ultrasparc
9e64c9a4 3171 tmake_file="${tmake_file} sparc/t-sparc"
a711a067 3172 ;;
644459d0 3173spu-*-elf*)
f3449a3c 3174 tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
644459d0 3175 tmake_file="spu/t-spu-elf"
638454a1 3176 native_system_header_dir=/include
6cf5579e 3177 extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
644459d0 3178 extra_modes=spu/spu-modes.def
3179 c_target_objs="${c_target_objs} spu-c.o"
3180 cxx_target_objs="${cxx_target_objs} spu-c.o"
3181 ;;
5aa04b01 3182tic6x-*-elf)
3183 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3184 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
5aa04b01 3185 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
5aa04b01 3186 use_collect2=no
3187 ;;
3188tic6x-*-uclinux)
3189 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
3190 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
3191 tm_file="${tm_file} ./sysroot-suffix.h"
a997b0d8 3192 tmake_file="t-sysroot-suffix t-slibgcc"
5aa04b01 3193 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
5aa04b01 3194 use_collect2=no
3195 ;;
2da35515 3196tilegx*-*-linux*)
7ce78e23 3197 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
3198 tmake_file="${tmake_file} tilegx/t-tilegx"
ea4d38ee 3199 extra_objs="${extra_objs} mul-tables.o"
6adc88f8 3200 c_target_objs="${c_target_objs} tilegx-c.o"
3201 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
1fea9dc6 3202 extra_headers="feedback.h"
2da35515 3203 case $target in
3204 tilegxbe-*)
3205 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
3206 ;;
3207 esac
7ce78e23 3208 ;;
2da35515 3209tilepro*-*-linux*)
7ce78e23 3210 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
3211 tmake_file="${tmake_file} tilepro/t-tilepro"
ea4d38ee 3212 extra_objs="${extra_objs} mul-tables.o"
6adc88f8 3213 c_target_objs="${c_target_objs} tilepro-c.o"
3214 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
1fea9dc6 3215 extra_headers="feedback.h"
7ce78e23 3216 ;;
20fbb1f2 3217v850-*-rtems*)
3218 target_cpu_default="TARGET_CPU_generic"
3219 tm_file="dbxelf.h elfos.h v850/v850.h"
3220 tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
3221 tmake_file="${tmake_file} v850/t-v850"
b69fc80a 3222 tmake_file="${tmake_file} v850/t-rtems"
20fbb1f2 3223 use_collect2=no
3224 c_target_objs="v850-c.o"
3225 cxx_target_objs="v850-c.o"
3226 ;;
f5ec6516 3227v850*-*-*)
3228 case ${target} in
9a5788ea 3229 v850e3v5-*-*)
3230 target_cpu_default="TARGET_CPU_v850e3v5"
3231 ;;
f5ec6516 3232 v850e2v3-*-*)
3233 target_cpu_default="TARGET_CPU_v850e2v3"
3234 ;;
3235 v850e2-*-*)
3236 target_cpu_default="TARGET_CPU_v850e2"
3237 ;;
3238 v850e1-*-* | v850es-*-*)
3239 target_cpu_default="TARGET_CPU_v850e1"
3240 ;;
3241 v850e-*-*)
3242 target_cpu_default="TARGET_CPU_v850e"
3243 ;;
3244 v850-*-*)
3245 target_cpu_default="TARGET_CPU_generic"
3246 ;;
3247 esac
156edce8 3248 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
5dd3389c 3249 if test x$stabs = xyes
3250 then
3251 tm_file="${tm_file} dbx.h"
3252 fi
3253 use_collect2=no
3254 c_target_objs="v850-c.o"
3255 cxx_target_objs="v850-c.o"
f3449a3c 3256 use_gcc_stdint=wrap
5dd3389c 3257 ;;
6718899e 3258vax-*-linux*)
deb14f24 3259 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
6b9d66b3 3260 extra_options="${extra_options} vax/elf.opt"
6718899e 3261 ;;
f470dade 3262vax-*-netbsdelf*)
3ff28a9d 3263 tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h"
6b9d66b3 3264 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
3ff28a9d 3265 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1"
f470dade 3266 ;;
bb607926 3267vax-*-openbsd*)
a27111cc 3268 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-libpthread.h vax/openbsd.h"
1a0fb050 3269 extra_options="${extra_options} openbsd.opt"
bb607926 3270 use_collect2=yes
3271 ;;
8992df51 3272visium-*-elf*)
3273 tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
3274 tmake_file="visium/t-visium visium/t-crtstuff"
3275 ;;
9b954fed 3276xstormy16-*-elf)
3277 # For historical reasons, the target files omit the 'x'.
2487a409 3278 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
9b954fed 3279 tm_p_file=stormy16/stormy16-protos.h
8c6edba4 3280 tm_d_file="elfos.h stormy16/stormy16.h"
9b954fed 3281 md_file=stormy16/stormy16.md
3282 out_file=stormy16/stormy16.c
840f1481 3283 extra_options=stormy16/stormy16.opt
9b954fed 3284 tmake_file="stormy16/t-stormy16"
9b954fed 3285 ;;
a76109da 3286xtensa*-*-elf*)
be47c99e 3287 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
b0a67e36 3288 extra_options="${extra_options} xtensa/elf.opt"
f6b7ba2b 3289 ;;
a76109da 3290xtensa*-*-linux*)
deb14f24 3291 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
237490bf 3292 tmake_file="${tmake_file} xtensa/t-xtensa"
f6b7ba2b 3293 ;;
e3c15dbe 3294xtensa*-*-uclinux*)
3295 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h"
3296 tmake_file="${tmake_file} xtensa/t-xtensa"
3297 extra_options="${extra_options} xtensa/uclinux.opt"
3298 ;;
1acdfc69 3299am33_2.0-*-linux*)
deb14f24 3300 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
1acdfc69 3301 gas=yes gnu_ld=yes
1acdfc69 3302 use_collect2=no
3303 ;;
a41d0b5e 3304m32c-*-rtems*)
3a0201c8 3305 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
a41d0b5e 3306 c_target_objs="m32c-pragma.o"
3307 cxx_target_objs="m32c-pragma.o"
3308 ;;
85c84d5c 3309m32c-*-elf*)
3a0201c8 3310 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
85c84d5c 3311 c_target_objs="m32c-pragma.o"
3312 cxx_target_objs="m32c-pragma.o"
85c84d5c 3313 ;;
bb607926 3314*)
09c6646e 3315 echo "*** Configuration ${target} not supported" 1>&2
bb607926 3316 exit 1
3317 ;;
3318esac
3319
561866ed 3320case ${target} in
561866ed 3321i[34567]86-*-linux* | x86_64-*-linux*)
46f8e3b0 3322 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
561866ed 3323 ;;
3324i[34567]86-*-* | x86_64-*-*)
46f8e3b0 3325 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
561866ed 3326 ;;
cf61fe8d 3327powerpc*-*-* | rs6000-*-*)
01e91138 3328 tm_file="${tm_file} ${cpu_type}/option-defaults.h"
561866ed 3329esac
3330
6834b837 3331# non-glibc systems
3332case ${target} in
3333*-linux-musl*)
3334 tmake_file="${tmake_file} t-musl"
3335 ;;
3336*-linux-uclibc*)
3337 tmake_file="${tmake_file} t-uclibc"
3338 ;;
3339esac
3340
7a3c63c6 3341# Assume the existence of indirect function support and allow the use of the
3342# resolver attribute.
3343case ${target} in
3344*-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*)
3345 ;;
3346*-*-linux*)
3347 case ${target} in
0dc42c7e 3348 aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*)
7a3c63c6 3349 default_gnu_indirect_function=yes
3350 ;;
3351 esac
3352 ;;
3353esac
3354
7e689f9a 3355# Build mkoffload tool
3356case ${target} in
3357*-intelmic-* | *-intelmicemul-*)
3358 tmake_file="${tmake_file} i386/t-intelmic"
ca4c3545 3359 tm_file="${tm_file} i386/intelmic-offload.h"
7e689f9a 3360 ;;
3361esac
3362
c94b1d0e 3363if [ "$target_has_targetcm" = "no" ]; then
3364 c_target_objs="$c_target_objs default-c.o"
3365 cxx_target_objs="$cxx_target_objs default-c.o"
3366fi
3367
3e87b980 3368if [ "$common_out_file" = "" ]; then
3369 if [ "$target_has_targetm_common" = "yes" ]; then
3370 common_out_file="$cpu_type/$cpu_type-common.c"
3371 else
3372 common_out_file="default-common.c"
3373 fi
3374fi
3375
03385ed3 3376if [ "$target_has_targetdm" = "no" ]; then
3377 d_target_objs="$d_target_objs default-d.o"
3378fi
3379
3864b642 3380# Support for --with-cpu and related options (and a few unrelated options,
973f8bf3 3381# too).
370a1d10 3382case ${with_cpu} in
3383 yes | no)
3384 echo "--with-cpu must be passed a value" 1>&2
3385 exit 1
3386 ;;
3387esac
f0b281fe 3388
1f64ad21 3389# Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
3390# to generic if there is no processor scheduler model for the target.
3391arch=
3392cpu=
05b38372 3393arch_without_sse2=no
ed2b8f56 3394arch_without_64bit=no
1f64ad21 3395case ${target} in
0be8ff0a 3396 i386-*-freebsd*)
3397 if test $fbsd_major -ge 6; then
3398 arch=i486
3399 else
3400 arch=i386
3401 fi
3402 cpu=generic
3403 arch_without_sse2=yes
3404 arch_without_64bit=yes
3405 ;;
d39d6f3f 3406 i386-*-netbsd*)
3407 arch=i486
3408 cpu=generic
3409 arch_without_sse2=yes
3410 arch_without_64bit=yes
3411 ;;
1f64ad21 3412 i386-*-*)
3413 arch=i386
3414 cpu=i386
05b38372 3415 arch_without_sse2=yes
ed2b8f56 3416 arch_without_64bit=yes
1f64ad21 3417 ;;
3418 i486-*-*)
3419 arch=i486
3420 cpu=i486
05b38372 3421 arch_without_sse2=yes
ed2b8f56 3422 arch_without_64bit=yes
1f64ad21 3423 ;;
3424 i586-*-*)
05b38372 3425 arch_without_sse2=yes
ed2b8f56 3426 arch_without_64bit=yes
1f64ad21 3427 case ${target_noncanonical} in
3428 k6_2-*)
3429 arch=k6-2
3430 cpu=k6-2
3431 ;;
3432 k6_3-*)
3433 arch=k6-3
3434 cpu=k6-3
3435 ;;
3436 k6-*)
3437 arch=k6
3438 cpu=k6
3439 ;;
3440 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3441 arch=pentium-mmx
3442 cpu=pentium-mmx
3443 ;;
3444 *)
3445 arch=pentium
3446 cpu=pentium
3447 ;;
3448 esac
3449 ;;
3450 i686-*-* | i786-*-*)
3451 case ${target_noncanonical} in
4c9faaa4 3452 znver1-*)
3453 arch=znver1
3454 cpu=znver1
3455 ;;
703d2f69 3456 znver2-*)
3457 arch=znver2
3458 cpu=znver2
3459 ;;
ec3f1e8b 3460 bdver4-*)
3461 arch=bdver4
3462 cpu=bdver4
3463 ;;
77aff08f 3464 bdver3-*)
3465 arch=bdver3
3466 cpu=bdver3
3467 ;;
8991ae0a 3468 bdver2-*)
3469 arch=bdver2
3470 cpu=bdver2
3471 ;;
6fc76bb0 3472 bdver1-*)
3473 arch=bdver1
3474 cpu=bdver1
3475 ;;
a97faf6b 3476 btver1-*)
3477 arch=btver1
3478 cpu=btver1
3479 ;;
75eddf9a 3480 btver2-*)
3481 arch=btver2
3482 cpu=btver2
3483 ;;
1f64ad21 3484 amdfam10-*|barcelona-*)
3485 arch=amdfam10
3486 cpu=amdfam10
3487 ;;
3488 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3489 arch=k8-sse3
3490 cpu=k8-sse3
3491 ;;
3492 k8-*|opteron-*|athlon64-*|athlon_fx-*)
3493 arch=k8
3494 cpu=k8
3495 ;;
3496 athlon_xp-*|athlon_mp-*|athlon_4-*)
3497 arch=athlon-4
3498 cpu=athlon-4
05b38372 3499 arch_without_sse2=yes
ed2b8f56 3500 arch_without_64bit=yes
1f64ad21 3501 ;;
3502 athlon_tbird-*|athlon-*)
3503 arch=athlon
3504 cpu=athlon
05b38372 3505 arch_without_sse2=yes
1f64ad21 3506 ;;
3507 geode-*)
3508 arch=geode
3509 cpu=geode
05b38372 3510 arch_without_sse2=yes
1f64ad21 3511 ;;
3512 pentium2-*)
3513 arch=pentium2
3514 cpu=pentium2
05b38372 3515 arch_without_sse2=yes
1f64ad21 3516 ;;
3517 pentium3-*|pentium3m-*)
3518 arch=pentium3
3519 cpu=pentium3
05b38372 3520 arch_without_sse2=yes
1f64ad21 3521 ;;
3522 pentium4-*|pentium4m-*)
3523 arch=pentium4
3524 cpu=pentium4
3525 ;;
3526 prescott-*)
3527 arch=prescott
3528 cpu=prescott
3529 ;;
3530 nocona-*)
3531 arch=nocona
3532 cpu=nocona
3533 ;;
3534 atom-*)
3535 arch=atom
3536 cpu=atom
3537 ;;
564c5b22 3538 slm-*)
3539 arch=slm
3540 cpu=slm
3541 ;;
1f64ad21 3542 core2-*)
3543 arch=core2
3544 cpu=core2
3545 ;;
b0298715 3546 corei7-*)
3547 arch=corei7
3548 cpu=corei7
3549 ;;
e4168d53 3550 corei7_avx-*)
3551 arch=corei7-avx
3552 cpu=corei7-avx
3553 ;;
1f64ad21 3554 pentium_m-*)
3555 arch=pentium-m
3556 cpu=pentium-m
3557 ;;
3558 pentiumpro-*)
3559 arch=pentiumpro
3560 cpu=pentiumpro
05b38372 3561 arch_without_sse2=yes
1f64ad21 3562 ;;
3563 *)
3564 arch=pentiumpro
3565 cpu=generic
05b38372 3566 arch_without_sse2=yes
ed2b8f56 3567 arch_without_64bit=yes
1f64ad21 3568 ;;
3569 esac
3570 ;;
3571 x86_64-*-*)
3572 case ${target_noncanonical} in
4c9faaa4 3573 znver1-*)
3574 arch=znver1
3575 cpu=znver1
3576 ;;
703d2f69 3577 znver2-*)
3578 arch=znver2
3579 cpu=znver2
3580 ;;
ec3f1e8b 3581 bdver4-*)
3582 arch=bdver4
3583 cpu=bdver4
3584 ;;
77aff08f 3585 bdver3-*)
3586 arch=bdver3
3587 cpu=bdver3
3588 ;;
8991ae0a 3589 bdver2-*)
3590 arch=bdver2
3591 cpu=bdver2
3592 ;;
6fc76bb0 3593 bdver1-*)
3594 arch=bdver1
3595 cpu=bdver1
3596 ;;
a97faf6b 3597 btver1-*)
3598 arch=btver1
3599 cpu=btver1
3600 ;;
75eddf9a 3601 btver2-*)
3602 arch=btver2
3603 cpu=btver2
3604 ;;
1f64ad21 3605 amdfam10-*|barcelona-*)
3606 arch=amdfam10
3607 cpu=amdfam10
3608 ;;
3609 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3610 arch=k8-sse3
3611 cpu=k8-sse3
3612 ;;
3613 k8-*|opteron-*|athlon_64-*)
3614 arch=k8
3615 cpu=k8
3616 ;;
3617 nocona-*)
3618 arch=nocona
3619 cpu=nocona
3620 ;;
3621 atom-*)
3622 arch=atom
3623 cpu=atom
3624 ;;
564c5b22 3625 slm-*)
3626 arch=slm
3627 cpu=slm
3628 ;;
1f64ad21 3629 core2-*)
3630 arch=core2
3631 cpu=core2
3632 ;;
b0298715 3633 corei7-*)
3634 arch=corei7
3635 cpu=corei7
3636 ;;
1f64ad21 3637 *)
3638 arch=x86-64
3639 cpu=generic
3640 ;;
3641 esac
3642 ;;
3643esac
3644
370a1d10 3645# If there is no $with_cpu option, try to infer one from ${target}.
3646# This block sets nothing except for with_cpu.
3647if test x$with_cpu = x ; then
3648 case ${target} in
01872b87 3649 i[34567]86-*-elfiamcu)
3f6183e5 3650 with_cpu=lakemont
01872b87 3651 ;;
1f64ad21 3652 i[34567]86-*-*|x86_64-*-*)
3653 with_cpu=$cpu
370a1d10 3654 ;;
3655 alphaev6[78]*-*-*)
3656 with_cpu=ev67
3657 ;;
3658 alphaev6*-*-*)
3659 with_cpu=ev6
3660 ;;
3661 alphapca56*-*-*)
3662 with_cpu=pca56
3663 ;;
3664 alphaev56*-*-*)
3665 with_cpu=ev56
3666 ;;
3667 alphaev5*-*-*)
3668 with_cpu=ev5
3669 ;;
de6e318c 3670 frv-*-*linux* | frv400-*-*linux*)
3e7f6cce 3671 with_cpu=fr400
3672 ;;
de6e318c 3673 frv550-*-*linux*)
3674 with_cpu=fr550
3675 ;;
f84195ec 3676 m68k*-*-*)
558b196a 3677 case "$with_arch" in
3678 "cf")
3679 with_cpu=${default_cf_cpu}
3680 ;;
3681 "" | "m68k")
3682 with_cpu=m${default_m68k_cpu}
3683 ;;
3684 esac
f84195ec 3685 ;;
370a1d10 3686 sparc*-*-*)
cbd3655d 3687 case ${target} in
3688 *-leon-*)
3689 with_cpu=leon
3690 ;;
3691 *-leon[3-9]*)
3692 with_cpu=leon3
3693 ;;
14091821 3694 *-leon[3-9]v7*)
3695 with_cpu=leon3v7
3696 ;;
cbd3655d 3697 *)
3698 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3699 ;;
3700 esac
370a1d10 3701 ;;
a51a064d 3702 visium-*-*)
3703 with_cpu=gr5
3704 ;;
370a1d10 3705 esac
f067c6b7 3706
3707 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3708 case ${target} in
3709 i[34567]86-*-*|x86_64-*-*)
1f64ad21 3710 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3711 if test x$with_cpu_32 = x; then
3712 with_cpu_32=$with_cpu
3713 fi
3714 if test x$with_cpu_64 = x; then
3715 with_cpu_64=$with_cpu
3716 fi
3717 with_cpu=
3718 fi
3719 ;;
3720 esac
3721fi
3722
3723# Support for --with-arch and related options (and a few unrelated options,
3724# too).
3725case ${with_arch} in
3726 yes | no)
3727 echo "--with-arch must be passed a value" 1>&2
3728 exit 1
3729 ;;
3730esac
3731
3732# If there is no $with_arch option, try to infer one from ${target}.
3733# This block sets nothing except for with_arch.
3734if test x$with_arch = x ; then
3735 case ${target} in
ffcf29bf 3736 i[34567]86-*-darwin*|x86_64-*-darwin*)
3737 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3738 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3739 ;;
01872b87 3740 i[34567]86-*-elfiamcu)
3f6183e5 3741 with_arch=lakemont
01872b87 3742 ;;
2d2e1f85 3743 i[34567]86-*-*)
05b38372 3744 # --with-fpmath sets the default ISA to SSE2, which is the same
3745 # ISA supported by Pentium 4.
3746 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3747 with_arch=$arch
3748 else
3749 with_arch=pentium4
2d2e1f85 3750 fi
3751 ;;
3752 x86_64-*-*)
1f64ad21 3753 with_arch=$arch
3754 ;;
61ad2260 3755 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3756 with_arch=r5900
3757 ;;
3758 mips*-*-vxworks)
3759 with_arch=mips2
3760 ;;
1f64ad21 3761 esac
3762
3763 # Avoid overriding --with-arch-32 and --with-arch-64 values.
3764 case ${target} in
ffcf29bf 3765 i[34567]86-*-darwin*|x86_64-*-darwin*)
3766 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3767 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3768 ;;
1f64ad21 3769 i[34567]86-*-*|x86_64-*-*)
3770 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3771 if test x$with_arch_32 = x; then
525b174b 3772 with_arch_32=$with_arch
1f64ad21 3773 fi
3774 if test x$with_arch_64 = x; then
ed2b8f56 3775 if test $arch_without_64bit = yes; then
3776 # Set the default 64bit arch to x86-64 if the default arch
3777 # doesn't support 64bit.
3778 with_arch_64=x86-64
3779 else
525b174b 3780 with_arch_64=$with_arch
ed2b8f56 3781 fi
1f64ad21 3782 fi
3783 with_arch=
ed2b8f56 3784 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3785 # Set the default 64bit arch to x86-64 if the default arch
3786 # doesn't support 64bit and we need 64bit ISA.
525b174b 3787 with_arch_32=$with_arch
ed2b8f56 3788 with_arch_64=x86-64
3789 with_arch=
f067c6b7 3790 fi
3791 ;;
3792 esac
370a1d10 3793fi
f0b281fe 3794
61ad2260 3795# Infer a default setting for --with-float.
3796if test x$with_float = x; then
3797 case ${target} in
3798 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3799 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
3800 # comply with IEEE 754.
3801 with_float=soft
3802 ;;
3803 esac
3804fi
3805
394563b3 3806# Infer a default setting for --with-fpu.
3807if test x$with_fpu = x; then
3808 case ${target} in
3809 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3810 # The R5900 FPU only supports single precision.
3811 with_fpu=single
3812 ;;
3813 esac
3814fi
3815
2d2e1f85 3816# Support --with-fpmath.
3817if test x$with_fpmath != x; then
3818 case ${target} in
3819 i[34567]86-*-* | x86_64-*-*)
3820 case ${with_fpmath} in
e69704a5 3821 avx)
3822 tm_file="${tm_file} i386/avxmath.h"
3823 ;;
2d2e1f85 3824 sse)
3825 tm_file="${tm_file} i386/ssemath.h"
3826 ;;
3827 *)
3828 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
3829 exit 1
3830 ;;
3831 esac
3832 ;;
3833 *)
3834 echo "--with-fpmath isn't supported for $target." 1>&2
3835 exit 1
3836 ;;
3837 esac
3838fi
3839
0a76a4fd 3840# Similarly for --with-schedule.
3841if test x$with_schedule = x; then
3842 case ${target} in
6af9f7ea 3843 hppa1*)
0a76a4fd 3844 # Override default PA8000 scheduling model.
3845 with_schedule=7100LC
3846 ;;
3847 esac
3848fi
f0b281fe 3849
61ad2260 3850# Infer a default setting for --with-llsc.
3851if test x$with_llsc = x; then
3852 case ${target} in
61ad2260 3853 mips*-*-linux*)
3854 # The kernel emulates LL and SC where necessary.
3855 with_llsc=yes
3856 ;;
d728eb90 3857 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3858 # The R5900 doesn't support LL(D) and SC(D).
3859 with_llsc=no
3860 ;;
61ad2260 3861 esac
3862fi
3863
0a76a4fd 3864# Validate and mark as valid any --with options supported
3865# by this target. In order to use a particular --with option
3866# you must list it in supported_defaults; validating the value
3867# is optional. This case statement should set nothing besides
3868# supported_defaults.
7dd97ab6 3869
0a76a4fd 3870supported_defaults=
3871case "${target}" in
16878cba 3872 aarch64*-*-*)
bb009361 3873 supported_defaults="abi cpu arch"
16878cba 3874 for which in cpu arch; do
3875
3876 eval "val=\$with_$which"
3877 base_val=`echo $val | sed -e 's/\+.*//'`
6b3f09b4 3878 ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
16878cba 3879
3880 if [ $which = arch ]; then
3881 def=aarch64-arches.def
3882 pattern=AARCH64_ARCH
3883 else
3884 def=aarch64-cores.def
3885 pattern=AARCH64_CORE
3886 fi
3887
3888 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
3889
3890 # Find the base CPU or ARCH id in aarch64-cores.def or
3891 # aarch64-arches.def
3892 if [ x"$base_val" = x ] \
3893 || grep "^$pattern(\"$base_val\"," \
3894 ${srcdir}/config/aarch64/$def \
3895 > /dev/null; then
3896
3897 if [ $which = arch ]; then
3898 base_id=`grep "^$pattern(\"$base_val\"," \
3899 ${srcdir}/config/aarch64/$def | \
3900 sed -e 's/^[^,]*,[ ]*//' | \
3901 sed -e 's/,.*$//'`
39543dd4 3902 # Extract the architecture flags from aarch64-arches.def
3903 ext_mask=`grep "^$pattern(\"$base_val\"," \
3904 ${srcdir}/config/aarch64/$def | \
3905 sed -e 's/)$//' | \
3906 sed -e 's/^.*,//'`
16878cba 3907 else
3908 base_id=`grep "^$pattern(\"$base_val\"," \
3909 ${srcdir}/config/aarch64/$def | \
3910 sed -e 's/^[^,]*,[ ]*//' | \
3911 sed -e 's/,.*$//'`
3912 fi
3913
3a3f0ab1 3914 # Use the pre-processor to strip flatten the options.
3915 # This makes the format less rigid than if we use
3916 # grep and sed directly here.
3917 opt_macro="AARCH64_OPT_EXTENSION(A, B, C, D, E, F)=A, B, C, D, E, F"
3918 options_parsed="`$ac_cv_prog_CPP -D"$opt_macro" -x c \
3919 ${srcdir}/config/aarch64/aarch64-option-extensions.def`"
3920
3921 # Match one element inside AARCH64_OPT_EXTENSION, we
3922 # consume anything that's not a ,.
3923 elem="[ ]*\([^,]\+\)[ ]*"
3924
3925 # Repeat the pattern for the number of entries in the
3926 # AARCH64_OPT_EXTENSION, currently 6 times.
3927 sed_patt="^$elem,$elem,$elem,$elem,$elem,$elem"
3928
16878cba 3929 while [ x"$ext_val" != x ]
3930 do
3931 ext_val=`echo $ext_val | sed -e 's/\+//'`
3932 ext=`echo $ext_val | sed -e 's/\+.*//'`
3933 base_ext=`echo $ext | sed -e 's/^no//'`
3a3f0ab1 3934 opt_line=`echo -e "$options_parsed" | \
3935 grep "^\"$base_ext\""`
16878cba 3936
3937 if [ x"$base_ext" = x ] \
3a3f0ab1 3938 || [[ -n $opt_line ]]; then
3939
3940 # These regexp extract the elements based on
3941 # their group match index in the regexp.
3942 ext_canon=`echo -e "$opt_line" | \
3943 sed -e "s/$sed_patt/\2/"`
3944 ext_on=`echo -e "$opt_line" | \
3945 sed -e "s/$sed_patt/\3/"`
3946 ext_off=`echo -e "$opt_line" | \
3947 sed -e "s/$sed_patt/\4/"`
16878cba 3948
3949 if [ $ext = $base_ext ]; then
3950 # Adding extension
a702492c 3951 ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
16878cba 3952 else
3953 # Removing extension
a702492c 3954 ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")"
16878cba 3955 fi
3956
3957 true
3958 else
3959 echo "Unknown extension used in --with-$which=$val" 1>&2
3960 exit 1
3961 fi
3962 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
3963 done
3964
3965 ext_mask="(("$ext_mask") << 6)"
3966 if [ x"$base_id" != x ]; then
3967 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
3968 fi
3969 true
3970 else
3971 echo "Unknown $which used in --with-$which=$val" 1>&2
3972 exit 1
3973 fi
3974 done
3975 ;;
3976
f0b281fe 3977 alpha*-*-*)
7dd97ab6 3978 supported_defaults="cpu tune"
3979 for which in cpu tune; do
3980 eval "val=\$with_$which"
8d520382 3981 case "$val" in
3982 "" \
3983 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
3984 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
3985 | 21264a)
7dd97ab6 3986 ;;
3987 *)
3988 echo "Unknown CPU used in --with-$which=$val" 1>&2
3989 exit 1
3990 ;;
3991 esac
3992 done
3993 ;;
3994
61aeeaac 3995 arc*-*-*)
3c867e46 3996 supported_defaults="cpu"
61aeeaac 3997
3998 if [ x"$with_cpu" = x ] \
3999 || grep "^ARC_CPU ($with_cpu," \
4000 ${srcdir}/config/arc/arc-cpus.def \
4001 > /dev/null; then
4002 # Ok
4003 true
4004 else
4005 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4006 exit 1
4007 fi
3c867e46 4008 ;;
4009
9399b971 4010 csky-*-*)
4011 supported_defaults="cpu endian float"
4012 ;;
4013
7dd97ab6 4014 arm*-*-*)
bb10d7b5 4015 supported_defaults="arch cpu float tune fpu abi mode tls"
c1cb3428 4016 for which in cpu tune arch; do
4017 # See if it matches a supported value
7dd97ab6 4018 eval "val=\$with_$which"
c1cb3428 4019 if [ x"$val" != x ]; then
4020 cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
4021 -v cmd="chk$which $val" \
4022 ${srcdir}/config/arm/arm-cpus.in`
4023 if [ "$cpu" = "error" ]; then
4024 echo "Unknown target in --with-$which=$val" 1>&2
4025 exit 1
4026 else
4027 new_val=$cpu
4028 eval "target_${which}_cname=$new_val"
4029 echo "For $val real value is $new_val"
b906ae74 4030 fi
70ac928b 4031 fi
7dd97ab6 4032 done
4033
8d520382 4034 case "$with_float" in
4035 "" \
a2cd141b 4036 | soft | hard | softfp)
f0b281fe 4037 # OK
3864b642 4038 ;;
f0b281fe 4039 *)
7dd97ab6 4040 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
f0b281fe 4041 exit 1
3864b642 4042 ;;
4043 esac
7dd97ab6 4044
c1cb3428 4045 # see if --with-fpu matches any of the supported FPUs
4046 if [ x"$with_fpu" != x ] ; then
d8813d69 4047 val=$with_fpu
c1cb3428 4048 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
d8813d69 4049 -v cmd="chkfpu $val" \
c1cb3428 4050 ${srcdir}/config/arm/arm-cpus.in`
d8813d69 4051 if [ "$fpu" = "error" ]
c1cb3428 4052 then
d8813d69 4053 echo "Unknown target in --with-fpu=$val" 1>&2
c1cb3428 4054 exit 1
4055 fi
c38b3fc1 4056 fi
f9273c43 4057
4058 case "$with_abi" in
4059 "" \
6cac4dc0 4060 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
f9273c43 4061 #OK
4062 ;;
4063 *)
4064 echo "Unknown ABI used in --with-abi=$with_abi"
a2cd141b 4065 exit 1
4066 ;;
4067 esac
4068
086571a4 4069 case "$with_mode" in
4070 "" \
4071 | arm | thumb )
4072 #OK
4073 ;;
4074 *)
4075 echo "Unknown mode used in --with-mode=$with_mode"
4076 exit 1
4077 ;;
4078 esac
4079
bb10d7b5 4080 case "$with_tls" in
4081 "" \
4082 | gnu | gnu2)
4083 # OK
4084 ;;
4085 *)
4086 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
4087 exit 1
4088 ;;
4089 esac
4090
7dd97ab6 4091 if test "x$with_arch" != x && test "x$with_cpu" != x; then
86aa4b48 4092 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
4093 exit 1
4094 fi
4095
4096 if test "x$with_cpu" != x && test "x$with_tune" != x; then
4097 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
4098 exit 1
7dd97ab6 4099 fi
2edb5c8c 4100
4101 # Add extra multilibs
4102 if test "x$with_multilib_list" != x; then
5a4bb1fd 4103 ml=
2edb5c8c 4104 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
91fe628b 4105 if test "x${arm_multilibs}" != xdefault ; then
4106 for arm_multilib in ${arm_multilibs}; do
4107 case ${arm_multilib} in
4108 aprofile|rmprofile)
4109 tmake_profile_file="arm/t-multilib"
4110 ;;
5a4bb1fd 4111 @*)
4112 ml=`echo "X$arm_multilib" | sed '1s,^X@,,'`
4113 if test -f "${srcdir}/config/arm/${ml}"; then
4114 tmake_file="${tmake_file} arm/${ml}"
4115 else
4116 echo "Error: ${ml} does not exist in ${srcdir}/config/arm" >&2
4117 exit 1
4118 fi
4119 ;;
91fe628b 4120 *)
4121 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
4122 exit 1
4123 ;;
4124 esac
4125 done
05ba9e9b 4126 fi
33ac16c8 4127
4128 if test "x${tmake_profile_file}" != x ; then
f3c3922f 4129 # arm/t-aprofile and arm/t-rmprofile are only
4130 # designed to work without any with-cpu,
4131 # with-arch, with-mode, with-fpu or with-float
4132 # options.
33ac16c8 4133 if test "x$with_arch" != x \
4134 || test "x$with_cpu" != x \
4135 || test "x$with_float" != x \
4136 || test "x$with_fpu" != x \
4137 || test "x$with_mode" != x ; then
4138 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
4139 exit 1
5a4bb1fd 4140 elif test "x$ml" != x ; then
4141 echo "Error: You cannot use builtin multilib profiles along with custom ones" 1>&2
4142 exit 1
33ac16c8 4143 fi
c5e2cf23 4144 # But pass the default value for float-abi
4145 # through to the multilib selector
4146 with_float="soft"
33ac16c8 4147 tmake_file="${tmake_file} ${tmake_profile_file}"
05ba9e9b 4148 TM_MULTILIB_CONFIG="$with_multilib_list"
33ac16c8 4149 fi
2edb5c8c 4150 fi
0e9ba648 4151 target_cpu_cname=${target_cpu_cname:-arm7tdmi}
284223a1 4152 with_cpu=${with_cpu:-$target_cpu_cname}
3864b642 4153 ;;
3864b642 4154
3e7f6cce 4155 fr*-*-*linux*)
4156 supported_defaults=cpu
4157 case "$with_cpu" in
4158 fr400) ;;
de6e318c 4159 fr550) ;;
3e7f6cce 4160 *)
4161 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4162 exit 1
4163 ;;
4164 esac
4165 ;;
4166
6af9f7ea 4167 fido-*-* | m68k*-*-*)
558b196a 4168 supported_defaults="arch cpu"
4169 case "$with_arch" in
4170 "" | "m68k"| "cf")
4171 m68k_arch_family="$with_arch"
4172 ;;
4173 *)
4174 echo "Invalid --with-arch=$with_arch" 1>&2
4175 exit 1
4176 ;;
4177 esac
f84195ec 4178
4179 # We always have a $with_cpu setting here.
8e80b452 4180 case "$with_cpu" in
8aed3cb3 4181 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
4182 m68k_cpu_ident=$with_cpu
4183 ;;
4184 "m68020-40")
4185 m68k_cpu_ident=m68020
4186 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
4187 ;;
4188 "m68020-60")
4189 m68k_cpu_ident=m68020
4190 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
8e80b452 4191 ;;
4192 *)
8aed3cb3 4193 # We need the C identifier rather than the string.
4194 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
4195 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
4196 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
4197 ${srcdir}/config/m68k/m68k-devices.def`
4198 if [ x"$m68k_cpu_ident" = x ] ; then
4199 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
4200 exit 1
4201 fi
4202 with_cpu="mcpu=$with_cpu"
8e80b452 4203 ;;
4204 esac
4205 ;;
4206
d62c0949 4207 amdgcn-*-*)
4208 supported_defaults="arch tune"
4209
4210 for which in arch tune; do
4211 eval "val=\$with_$which"
4212 case ${val} in
d4acecee 4213 "" | carrizo | fiji | gfx900 | gfx906 )
d62c0949 4214 # OK
4215 ;;
4216 *)
4217 echo "Unknown cpu used in --with-$which=$val." 1>&2
4218 exit 1
4219 ;;
4220 esac
4221 done
4222 [ "x$with_arch" = x ] && with_arch=fiji
4223 ;;
4224
6af9f7ea 4225 hppa*-*-*)
7dd97ab6 4226 supported_defaults="arch schedule"
4227
8d520382 4228 case "$with_arch" in
4229 "" | 1.0 | 1.1 | 2.0)
7dd97ab6 4230 # OK
4231 ;;
4232 *)
4233 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
4234 exit 1
4235 ;;
4236 esac
4237
8d520382 4238 case "$with_schedule" in
4239 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
f0b281fe 4240 # OK
4241 ;;
4242 *)
4243 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
4244 exit 1
4245 ;;
4246 esac
3864b642 4247 ;;
3864b642 4248
f0b281fe 4249 i[34567]86-*-* | x86_64-*-*)
6fa78bde 4250 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
f067c6b7 4251 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
7dd97ab6 4252 eval "val=\$with_$which"
f292755a 4253 case " $x86_archs " in
4254 *" ${val} "*)
9db3d688 4255 case "${target}" in
4256 x86_64-*-*)
f067c6b7 4257 case "x$which" in
4258 *_32)
4259 ;;
4260 *)
4261 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
4262 exit 1
4263 ;;
4264 esac
9db3d688 4265 ;;
4266 esac
4267 # OK
4268 ;;
7dd97ab6 4269 *)
f292755a 4270 if test x${val} != x; then
4271 case " $x86_64_archs " in
4272 *" ${val} "*)
4273 # OK
4274 ;;
4275 *)
4276 # Allow $x86_cpus --with-cpu=/--with-tune=
4277 case "x$which" in
4278 xcpu*|xtune*)
4279 case " $x86_cpus " in
4280 *" ${val} "*)
4281 # OK
4282 ;;
4283 *)
4284 echo "Unknown CPU given in --with-$which=$val." 1>&2
4285 exit 1
4286 ;;
4287 esac
4288 ;;
4289 *)
4290 echo "Unknown CPU given in --with-$which=$val." 1>&2
4291 exit 1
4292 ;;
4293 esac
4294 ;;
4295 esac
4296 fi
7dd97ab6 4297 ;;
4298 esac
4299 done
4300 ;;
4301
fb55f581 4302 riscv*-*-*)
93b27baa 4303 supported_defaults="abi arch tune riscv_attribute"
fb55f581 4304
4305 case "${target}" in
088e5c3b 4306 riscv-* | riscv32*) xlen=32 ;;
fb55f581 4307 riscv64*) xlen=64 ;;
4308 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4309 esac
4310
93b27baa 4311 case "${with_riscv_attribute}" in
4312 yes)
4313 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4314 ;;
4315 no)
4316 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4317 ;;
4318 ""|default)
4319 case "${target}" in
4320 riscv*-*-elf*)
4321 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
4322 ;;
4323 *)
4324 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
4325 ;;
4326 esac
4327 ;;
4328 *)
4329 echo "--with-riscv-attribute=${with_riscv_attribute} is not supported. The argument must begin with yes, no or default." 1>&2
4330 exit 1
4331 ;;
4332 esac
4333
4334
fb55f581 4335 # Infer arch from --with-arch, --target, and --with-abi.
4336 case "${with_arch}" in
51b16492 4337 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
fb55f581 4338 # OK.
4339 ;;
4340 "")
4341 # Infer XLEN, but otherwise assume GC.
4342 case "${with_abi}" in
51b16492 4343 ilp32e) with_arch="rv32e" ;;
fb55f581 4344 ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;;
4345 lp64 | lp64f | lp64d) with_arch="rv64gc" ;;
4346 *) with_arch="rv${xlen}gc" ;;
4347 esac
4348 ;;
4349 *)
51b16492 4350 echo "--with-arch=${with_arch} is not supported. The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2
fb55f581 4351 exit 1
4352 ;;
4353 esac
4354
4355 # Make sure --with-abi is valid. If it was not specified,
4356 # pick a default based on the ISA, preferring soft-float
4357 # unless the D extension is present.
4358 case "${with_abi}" in
51b16492 4359 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d)
fb55f581 4360 ;;
4361 "")
4362 case "${with_arch}" in
4363 rv32*d* | rv32g*) with_abi=ilp32d ;;
51b16492 4364 rv32e*) with_abi=ilp32e ;;
fb55f581 4365 rv32*) with_abi=ilp32 ;;
4366 rv64*d* | rv64g*) with_abi=lp64d ;;
4367 rv64*) with_abi=lp64 ;;
4368 esac
4369 ;;
4370 *)
4371 echo "--with-abi=${with_abi} is not supported" 1>&2
4372 exit 1
4373 ;;
4374 esac
4375
4376 # Make sure ABI and ISA are compatible.
4377 case "${with_abi},${with_arch}" in
51b16492 4378 ilp32,rv32* | ilp32e,rv32e* \
fb55f581 4379 | ilp32f,rv32*f* | ilp32f,rv32g* \
4380 | ilp32d,rv32*d* | ilp32d,rv32g* \
4381 | lp64,rv64* \
4382 | lp64f,rv64*f* | lp64f,rv64g* \
4383 | lp64d,rv64*d* | lp64d,rv64g*)
4384 ;;
4385 *)
4386 echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2
4387 exit 1
4388 ;;
4389 esac
70331978 4390
4391 # Handle --with-multilib-list.
4392 if test "x${with_multilib_list}" != xdefault; then
4393 tm_file="${tm_file} riscv/withmultilib.h"
4394 tmake_file="${tmake_file} riscv/t-withmultilib"
4395
4396 case ${with_multilib_list} in
4397 ilp32 | ilp32f | ilp32d \
4398 | lp64 | lp64f | lp64d )
4399 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}"
4400 ;;
4401 *)
4402 echo "--with-multilib-list=${with_multilib_list} not supported."
4403 exit 1
4404 esac
4405
4406 # Define macros to select the default multilib.
4407 case ${with_arch} in
4408 rv32gc)
4409 tm_defines="${tm_defines} TARGET_MLIB_ARCH=1"
4410 ;;
4411 rv64gc)
4412 tm_defines="${tm_defines} TARGET_MLIB_ARCH=2"
4413 ;;
4414 *)
4415 echo "unsupported --with-arch for --with-multilib-list"
4416 exit 1
4417 esac
4418 case ${with_abi} in
4419 ilp32)
4420 tm_defines="${tm_defines} TARGET_MLIB_ABI=1"
4421 ;;
4422 ilp32f)
4423 tm_defines="${tm_defines} TARGET_MLIB_ABI=2"
4424 ;;
4425 ilp32d)
4426 tm_defines="${tm_defines} TARGET_MLIB_ABI=3"
4427 ;;
4428 lp64)
4429 tm_defines="${tm_defines} TARGET_MLIB_ABI=4"
4430 ;;
4431 lp64f)
4432 tm_defines="${tm_defines} TARGET_MLIB_ABI=5"
4433 ;;
4434 lp64d)
4435 tm_defines="${tm_defines} TARGET_MLIB_ABI=6"
4436 ;;
4437 *)
4438 echo "unsupported --with-abi for --with-multilib"
4439 exit 1
4440 esac
4441 fi
fb55f581 4442 ;;
4443
7dd97ab6 4444 mips*-*-*)
eb5c0cb6 4445 supported_defaults="abi arch arch_32 arch_64 float fpu nan fp_32 odd_spreg_32 tune tune_32 tune_64 divide llsc mips-plt synci lxc1-sxc1 madd4"
7dd97ab6 4446
e83e5390 4447 case ${with_float} in
4448 "" | soft | hard)
f0b281fe 4449 # OK
4450 ;;
4451 *)
7dd97ab6 4452 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
f0b281fe 4453 exit 1
4454 ;;
4455 esac
3864b642 4456
394563b3 4457 case ${with_fpu} in
4458 "" | single | double)
4459 # OK
4460 ;;
4461 *)
4462 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
4463 exit 1
4464 ;;
4465 esac
4466
0bd32132 4467 case ${with_nan} in
4468 "" | 2008 | legacy)
4469 # OK
4470 ;;
4471 *)
4472 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
4473 exit 1
4474 ;;
4475 esac
4476
f2b55aea 4477 case ${with_fp_32} in
4478 "" | 32 | xx | 64)
4479 # OK
4480 ;;
4481 *)
4482 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
4483 exit 1
4484 ;;
4485 esac
4486
4487 case ${with_odd_spreg_32} in
4488 yes)
4489 with_odd_spreg_32="odd-spreg"
4490 ;;
4491 no)
4492 with_odd_spreg_32="no-odd-spreg"
4493 ;;
4494 "")
4495 # OK
4496 ;;
4497 *)
4498 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
4499 exit 1
4500 ;;
4501 esac
4502
e83e5390 4503 case ${with_abi} in
4504 "" | 32 | o64 | n32 | 64 | eabi)
f0b281fe 4505 # OK
4506 ;;
4507 *)
7dd97ab6 4508 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
f0b281fe 4509 exit 1
4510 ;;
4511 esac
f9262d1e 4512
4513 case ${with_divide} in
4514 "" | breaks | traps)
4515 # OK
4516 ;;
4517 *)
4518 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
4519 exit 1
bc4c18f7 4520 ;;
4521 esac
4522
4523 case ${with_llsc} in
4524 yes)
4525 with_llsc=llsc
4526 ;;
4527 no)
4528 with_llsc="no-llsc"
4529 ;;
4530 "")
4531 # OK
4532 ;;
4533 *)
4534 echo "Unknown llsc type used in --with-llsc" 1>&2
4535 exit 1
4536 ;;
f9262d1e 4537 esac
4a909f69 4538
4539 case ${with_mips_plt} in
4540 yes)
4541 with_mips_plt=plt
4542 ;;
4543 no)
4544 with_mips_plt=no-plt
4545 ;;
4546 "")
4547 ;;
4548 *)
4549 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4550 exit 1
4551 ;;
4552 esac
1af9587c 4553
4554 case ${with_synci} in
4555 yes)
4556 with_synci=synci
4557 ;;
32108f3d 4558 no)
1af9587c 4559 with_synci=no-synci
4560 ;;
32108f3d 4561 "")
4562 ;;
1af9587c 4563 *)
4564 echo "Unknown synci type used in --with-synci" 1>&2
4565 exit 1
4566 ;;
4567 esac
fccc4b54 4568
4569 case ${with_lxc1_sxc1} in
4570 yes)
4571 with_lxc1_sxc1=lxc1-sxc1
4572 ;;
4573 no)
4574 with_lxc1_sxc1=no-lxc1-sxc1
4575 ;;
4576 "")
4577 ;;
4578 *)
4579 echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2
4580 exit 1
4581 ;;
4582 esac
eb5c0cb6 4583
4584 case ${with_madd4} in
4585 yes)
4586 with_madd4=madd4
4587 ;;
4588 no)
4589 with_madd4=no-madd4
4590 ;;
4591 "")
4592 ;;
4593 *)
4594 echo "Unknown madd4 type used in --with-madd4" 1>&2
4595 exit 1
4596 ;;
4597 esac
eae21ed1 4598 ;;
4599
4600 nds32*-*-*)
add86f06 4601 supported_defaults="arch cpu nds32_lib float fpu_config"
eae21ed1 4602
4603 # process --with-arch
4604 case "${with_arch}" in
add86f06 4605 "" | v3 )
4606 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4607 ;;
4608 v2 | v2j | v3m)
eae21ed1 4609 # OK
add86f06 4610 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0"
4611 ;;
4612 v3f)
4613 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1"
4614 ;;
4615 v3s)
4616 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2"
4617
eae21ed1 4618 ;;
4619 *)
add86f06 4620 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2
eae21ed1 4621 exit 1
4622 ;;
4623 esac
4624
d728703a 4625 case "${with_cpu}" in
4626 "")
4627 with_cpu=n9
4628 ;;
49665213 4629 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15)
d728703a 4630 # OK
4631 ;;
4632 *)
49665213 4633 echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2
d728703a 4634 exit 1
4635 ;;
4636 esac
4637
eae21ed1 4638 # process --with-nds32-lib
4639 case "${with_nds32_lib}" in
4640 "")
36db07f2 4641 case ${target} in
4642 *-*-*uclibc*)
4643 with_nds32_lib=ulibc
4644 ;;
4645 *-*-linux*)
4646 with_nds32_lib=glibc
4647 ;;
4648 *)
4649 with_nds32_lib=newlib
4650 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4651 ;;
4652 esac
eae21ed1 4653 ;;
4654 newlib)
4655 # OK
a5a22b4f 4656 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
eae21ed1 4657 ;;
4658 mculib)
4659 # OK
a5a22b4f 4660 # for the arch=v3f or arch=v3s under mculib toolchain,
4661 # we would like to set -fno-math-errno as default
4662 case "${with_arch}" in
4663 v3f | v3s)
4664 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
4665 ;;
4666 esac
4667 ;;
36db07f2 4668 glibc | uclibc)
a5a22b4f 4669 # OK
eae21ed1 4670 ;;
4671 *)
a5a22b4f 4672 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
eae21ed1 4673 exit 1
4674 ;;
4675 esac
3864b642 4676
add86f06 4677 # process --with-float
4678 case "${with_float}" in
4679 "" | soft | hard)
4680 # OK
4681 ;;
4682 *)
4683 echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2
4684 exit 1
4685 ;;
4686 esac
4687
4688 # process --with-config-fpu
4689 case "${with_config_fpu}" in
4690 "" | 0 | 1 | 2 | 3)
4691 # OK
4692 ;;
4693 *)
4694 echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2
4695 exit 1
4696 ;;
4697 esac
4698
4699
4700 ;;
9515cb26 4701 nios2*-*-*)
4702 supported_defaults="arch"
4703 case "$with_arch" in
4704 "" | r1 | r2)
4705 # OK
4706 ;;
4707 *)
4708 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
4709 exit 1
4710 ;;
4711 esac
4712 ;;
4713
7dd97ab6 4714 powerpc*-*-* | rs6000-*-*)
78de65bc 4715 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain"
7dd97ab6 4716
cf61fe8d 4717 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
7dd97ab6 4718 eval "val=\$with_$which"
e83e5390 4719 case ${val} in
83ae44d6 4720 default32 | default64)
cf61fe8d 4721 case $which in
4722 cpu | tune)
4723 ;;
4724 *)
4725 echo "$val only valid for --with-cpu and --with-tune." 1>&2
4726 exit 1
4727 ;;
4728 esac
83ae44d6 4729 with_which="with_$which"
4730 eval $with_which=
4731 ;;
e2fcf81b 4732 405cr)
4733 tm_defines="${tm_defines} CONFIG_PPC405CR"
4734 eval "with_$which=405"
4735 ;;
473d3d50 4736 "" | common | native \
1b3078dd 4737 | power[3456789] | power5+ | power6x \
4738 | powerpc | powerpc64 | powerpc64le \
4739 | rs64 \
257bc844 4740 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
ed08558a 4741 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
4742 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
b770074c 4743 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
4744 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
7dd97ab6 4745 # OK
4746 ;;
4747 *)
4748 echo "Unknown cpu used in --with-$which=$val." 1>&2
4749 exit 1
4750 ;;
4751 esac
4752 done
238f342d 4753
4754 case "$with_abi" in
4755 "" | elfv1 | elfv2 )
4756 #OK
4757 ;;
4758 *)
4759 echo "Unknown ABI used in --with-abi=$with_abi"
4760 exit 1
4761 ;;
4762 esac
78de65bc 4763
4764 if test "x$with_advance_toolchain" != x; then
4765 if test -d "/opt/$with_advance_toolchain/." -a \
4766 -d "/opt/$with_advance_toolchain/bin/." -a \
4767 -d "/opt/$with_advance_toolchain/include/."; then
4768
4769 tm_file="$tm_file ./advance-toolchain.h"
4770 (at="/opt/$with_advance_toolchain"
4771 echo "/* Use Advance Toolchain $at */"
4772 echo
78de65bc 4773 echo "#undef LINK_OS_EXTRA_SPEC32"
4774 echo "#define LINK_OS_EXTRA_SPEC32" \
4775 "\"%(link_os_new_dtags)" \
4776 "-rpath $prefix/lib -rpath $at/lib" \
4777 "-L $prefix/lib -L $at/lib\""
4778 echo
4779 echo "#undef LINK_OS_EXTRA_SPEC64"
4780 echo "#define LINK_OS_EXTRA_SPEC64" \
4781 "\"%(link_os_new_dtags)" \
4782 "-rpath $prefix/lib64 -rpath $at/lib64" \
4783 "-L $prefix/lib64 -L $at/lib64\""
4784 echo
4785 echo "#undef LINK_OS_NEW_DTAGS_SPEC"
4786 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
4787 "\"--enable-new-dtags\""
4788 echo
4789 echo "#undef DYNAMIC_LINKER_PREFIX"
4790 echo "#define DYNAMIC_LINKER_PREFIX \"$at\""
4791 echo
4792 echo "#undef MD_EXEC_PREFIX"
4793 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
4794 echo
4795 echo "#undef MD_STARTFILE_PREFIX"
4796 echo "#define MD_STARTFILE_PREFIX \"$at/lib/\"") \
4797 > advance-toolchain.h
4798 else
4799 echo "Unknown advance-toolchain $with_advance_toolchain"
4800 exit 1
4801 fi
4802 fi
b95c28c7 4803
4804 # Set up the default long double format if the user changed it.
4805 if test x$with_long_double_format = xieee; then
4806 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1"
4807
4808 elif test x$with_long_double_format = xibm; then
4809 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0"
4810 fi
7dd97ab6 4811 ;;
4812
b8c0043c 4813 s390*-*-*)
4814 supported_defaults="arch mode tune"
4815
4816 for which in arch tune; do
4817 eval "val=\$with_$which"
e83e5390 4818 case ${val} in
c4bc178c 4819 "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12 | arch13 )
b8c0043c 4820 # OK
4821 ;;
4822 *)
4823 echo "Unknown cpu used in --with-$which=$val." 1>&2
4824 exit 1
4825 ;;
4826 esac
4827 done
4828
e83e5390 4829 case ${with_mode} in
4830 "" | esa | zarch)
b8c0043c 4831 # OK
4832 ;;
4833 *)
4834 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
4835 exit 1
4836 ;;
4837 esac
4838 ;;
4839
f1a166be 4840 sh[123456ble]*-*-* | sh-*-*)
07168dd9 4841 supported_defaults="cpu"
3a6994f8 4842 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
07168dd9 4843 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
4844 # OK
4845 ;;
7105fb72 4846 m2a | m2a-single | m2a-single-only | m2a-nofpu)
4847 ;;
9435e831 4848 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
4849 ;;
07168dd9 4850 *)
4851 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
4852 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
9435e831 4853 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
7105fb72 4854 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
07168dd9 4855 exit 1
4856 ;;
4857 esac
4858 ;;
f0b281fe 4859 sparc*-*-*)
abe381aa 4860 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
7dd97ab6 4861
abe381aa 4862 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
7dd97ab6 4863 eval "val=\$with_$which"
e83e5390 4864 case ${val} in
b0168e11 4865 "" | sparc | sparcv9 | sparc64 \
4866 | v7 | cypress \
14091821 4867 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
b0168e11 4868 | sparclite | f930 | f934 | sparclite86x \
4869 | sparclet | tsc701 \
b18dbf25 4870 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
95f09db7 4871 | niagara3 | niagara4 | niagara7 | m8)
7dd97ab6 4872 # OK
4873 ;;
4874 *)
4875 echo "Unknown cpu used in --with-$which=$val" 1>&2
4876 exit 1
4877 ;;
4878 esac
4879 done
3864b642 4880
e83e5390 4881 case ${with_float} in
4882 "" | soft | hard)
f0b281fe 4883 # OK
4884 ;;
4885 *)
7dd97ab6 4886 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
f0b281fe 4887 exit 1
4888 ;;
4889 esac
3864b642 4890 ;;
3864b642 4891
5474166e 4892 spu-*-*)
4893 supported_defaults="arch tune"
4894
4895 for which in arch tune; do
4896 eval "val=\$with_$which"
4897 case ${val} in
4898 "" | cell | celledp)
4899 # OK
4900 ;;
4901 *)
4902 echo "Unknown cpu used in --with-$which=$val." 1>&2
4903 exit 1
4904 ;;
4905 esac
4906 done
4907 ;;
4908
5aa04b01 4909 tic6x-*-*)
4910 supported_defaults="arch"
4911
4912 case ${with_arch} in
4913 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
4914 # OK
4915 ;;
4916 *)
4917 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
4918 exit 1
4919 ;;
4920 esac
4921 ;;
4922
f0b281fe 4923 v850*-*-*)
7dd97ab6 4924 supported_defaults=cpu
e83e5390 4925 case ${with_cpu} in
9a5788ea 4926 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
f0b281fe 4927 # OK
4928 ;;
4929 *)
4930 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4931 exit 1
4932 ;;
4933 esac
3864b642 4934 ;;
a51a064d 4935 visium-*-*)
4936 supported_defaults="cpu"
4937 case $with_cpu in
4938 "" | gr5 | gr6)
4939 ;;
4940 *) echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4941 exit 1
4942 ;;
4943 esac
4944 ;;
0a76a4fd 4945esac
3864b642 4946
85f370fe 4947# Targets for which there is at least one VxWorks port should include
4948# vxworks-dummy.h to allow safe references to various TARGET_VXWORKS kinds
4949# of markers from other files in the port, including the vxworks*.h files to
4950# distinguish VxWorks variants such as VxWorks 7 or 64).
4951
4952case ${target} in
4953arm*-*-* | i[34567]86-*-* | mips*-*-* | powerpc*-*-* | sh*-*-* \
4954| sparc*-*-* | x86_64-*-*)
4955 tm_file="vxworks-dummy.h ${tm_file}"
4956 ;;
4957esac
4958
0a76a4fd 4959# Set some miscellaneous flags for particular targets.
4960target_cpu_default2=
4961case ${target} in
16878cba 4962 aarch64*-*-*)
39543dd4 4963 if test x"$target_cpu_cname" != x
16878cba 4964 then
16878cba 4965 target_cpu_default2=$target_cpu_cname
4966 fi
4967 ;;
4968
f0b281fe 4969 arm*-*-*)
284223a1 4970 if test x$with_cpu = x
346bfe2d 4971 then
284223a1 4972 echo "Don't know the target cpu" 1>&2
4973 exit 1
346bfe2d 4974 else
284223a1 4975 target_cpu_default2="\\\"$with_cpu\\\""
346bfe2d 4976 fi
f0b281fe 4977 ;;
582b17a6 4978
6af9f7ea 4979 hppa*-*-*)
f0b281fe 4980 if test x$gas = xyes
bb607926 4981 then
0468fd14 4982 target_cpu_default2="MASK_GAS"
f0b281fe 4983 fi
3864b642 4984 ;;
3864b642 4985
6af9f7ea 4986 fido*-*-* | m68k*-*-*)
8aed3cb3 4987 target_cpu_default2=$m68k_cpu_ident
d078aadd 4988 tmake_file="m68k/t-opts $tmake_file"
558b196a 4989 if [ x"$m68k_arch_family" != x ]; then
4990 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
4991 fi
8aed3cb3 4992 ;;
4993
b3fd46a0 4994 i[34567]86-*-darwin* | x86_64-*-darwin*)
b3fd46a0 4995 ;;
77adc39e 4996 i[34567]86-*-linux* | x86_64-*-linux*)
92ac8192 4997 extra_objs="${extra_objs} cet.o"
4998 tmake_file="$tmake_file i386/t-linux i386/t-cet"
77adc39e 4999 ;;
5000 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
5001 tmake_file="$tmake_file i386/t-kfreebsd"
5002 ;;
5003 i[34567]86-*-gnu*)
5004 tmake_file="$tmake_file i386/t-gnu"
b3fd46a0 5005 ;;
da024748 5006 i[34567]86-*-msdosdjgpp*)
5007 tmake_file="${tmake_file} i386/t-djgpp"
5008 ;;
0fd03648 5009 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
20be3c56 5010 ;;
39b7d6dc 5011 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
5012 ;;
5013 i[34567]86-*-mingw* | x86_64-*-mingw*)
6471e33b 5014 ;;
463553db 5015 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
5016 ;;
365ada71 5017 i[34567]86-*-freebsd*)
5018 ;;
5019 x86_64-*-freebsd*)
5020 tmake_file="${tmake_file} i386/t-freebsd64"
278afeb5 5021 ;;
8b21beb2 5022 ia64*-*-linux*)
8b21beb2 5023 ;;
b3fd46a0 5024
f0b281fe 5025 mips*-*-*)
b93bf04a 5026 if test x$gnu_ld = xyes
5027 then
dfae4483 5028 target_cpu_default2="MASK_SPLIT_ADDRESSES"
b93bf04a 5029 fi
09c6646e 5030 case ${target} in
f0b281fe 5031 mips*el-*-*)
5032 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
5033 ;;
5034 esac
257ccd46 5035 if test x$with_arch != x; then
5036 default_mips_arch=$with_arch
5037 fi
5038 if test x$with_abi != x; then
5039 default_mips_abi=$with_abi
5040 fi
5041 case ${default_mips_arch} in
5042 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
5043 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
5044 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
5045 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
5046 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
5047 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
78645e70 5048 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=37" ;;
257ccd46 5049 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
5050 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
78645e70 5051 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=69" ;;
257ccd46 5052 esac
5053 case ${default_mips_abi} in
5054 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
5055 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
5056 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
5057 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
5058 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
5059 esac
1d88eb71 5060 tmake_file="mips/t-mips $tmake_file"
f4deb416 5061 ;;
f0b281fe 5062
5063 powerpc*-*-* | rs6000-*-*)
7dd97ab6 5064 # FIXME: The PowerPC port uses the value set at compile time,
5065 # although it's only cosmetic.
f0b281fe 5066 if test "x$with_cpu" != x
bb607926 5067 then
f0b281fe 5068 target_cpu_default2="\\\"$with_cpu\\\""
bb607926 5069 fi
01e91138 5070 out_file="${cpu_type}/${cpu_type}.c"
5071 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
5072 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o"
03385ed3 5073 d_target_objs="${d_target_objs} ${cpu_type}-d.o"
01e91138 5074 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
f4deb416 5075 ;;
3864b642 5076
57d5535b 5077 sh[123456ble]*-*-* | sh-*-*)
5078 c_target_objs="${c_target_objs} sh-c.o"
5079 cxx_target_objs="${cxx_target_objs} sh-c.o"
5080 ;;
5081
f0b281fe 5082 sparc*-*-*)
7dd97ab6 5083 # Some standard aliases.
5084 case x$with_cpu in
5085 xsparc)
5086 with_cpu=v7
5087 ;;
7dd97ab6 5088 xsparcv9 | xsparc64)
5089 with_cpu=v9
5090 ;;
5091 esac
5092
191a0bb7 5093 if test x$with_tune = x ; then
5094 case ${target} in
5095 *-leon-*)
5096 with_tune=leon
5097 ;;
5098 *-leon[3-9]*)
5099 with_tune=leon3
5100 ;;
5101 esac
5102 fi
5103
3ce7ff97 5104 # The SPARC port checks this value at compile-time.
3864b642 5105 target_cpu_default2="TARGET_CPU_$with_cpu"
5106 ;;
b0168e11 5107
f0b281fe 5108 v850*-*-*)
5109 case "x$with_cpu" in
5110 x)
5111 ;;
9a5788ea 5112 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
f0b281fe 5113 target_cpu_default2="TARGET_CPU_$with_cpu"
5114 ;;
f5ec6516 5115 xv850es)
5116 target_cpu_default2="TARGET_CPU_v850e1"
5117 ;;
f0b281fe 5118 esac
5119 ;;
a51a064d 5120 visium-*-*)
5121 target_cpu_default2="TARGET_CPU_$with_cpu"
5122 ;;
0a76a4fd 5123esac
bb607926 5124
0a76a4fd 5125t=
eb5c0cb6 5126all_defaults="abi cpu cpu_32 cpu_64 arch arch_32 arch_64 tune tune_32 tune_64 schedule float mode fpu nan fp_32 odd_spreg_32 divide llsc mips-plt synci tls lxc1-sxc1 madd4"
0a76a4fd 5127for option in $all_defaults
5128do
4a909f69 5129 eval "val=\$with_"`echo $option | sed s/-/_/g`
0a76a4fd 5130 if test -n "$val"; then
5131 case " $supported_defaults " in
5132 *" $option "*)
5133 ;;
5134 *)
5135 echo "This target does not support --with-$option." 2>&1
fc3e831e 5136 echo "Valid --with options are: $supported_defaults" 2>&1
0a76a4fd 5137 exit 1
5138 ;;
5139 esac
7dd97ab6 5140
0a76a4fd 5141 if test "x$t" = x
5142 then
5143 t="{ \"$option\", \"$val\" }"
5144 else
5145 t="${t}, { \"$option\", \"$val\" }"
7dd97ab6 5146 fi
7dd97ab6 5147 fi
0a76a4fd 5148done
7dd97ab6 5149
0a76a4fd 5150if test "x$t" = x
5151then
5152 configure_default_options="{ { NULL, NULL} }"
5153else
5154 configure_default_options="{ ${t} }"
5155fi
5156
5157if test "$target_cpu_default2" != ""
5158then
5159 if test "$target_cpu_default" != ""
bb607926 5160 then
0a76a4fd 5161 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
5162 else
5163 target_cpu_default=$target_cpu_default2
bb607926 5164 fi
0a76a4fd 5165fi
7e689f9a 5166
5167case ${target} in
5168i[34567]86-*-* | x86_64-*-*)
5169 if test x$enable_as_accelerator = xyes; then
5170 extra_programs="mkoffload\$(exeext)"
5171 fi
5172 ;;
5173esac