]> git.ipfire.org Git - thirdparty/gcc.git/blame - libgcc/config.host
GCN libgfortran.
[thirdparty/gcc.git] / libgcc / config.host
CommitLineData
894a47b4 1# libgcc host-specific configuration file.
fbd26352 2# Copyright (C) 1997-2019 Free Software Foundation, Inc.
894a47b4 3
4#This file is part of GCC.
5
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
6bc9506f 8#Software Foundation; either version 3, or (at your option) any later
894a47b4 9#version.
10
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.
15
16#You should have received a copy of the GNU General Public License
6bc9506f 17#along with GCC; see the file COPYING3. If not see
18#<http://www.gnu.org/licenses/>.
894a47b4 19
20# This is the libgcc host-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 host-specific information.
25
26# This file bears an obvious resemblance to gcc/config.gcc. The cases
27# should be kept similar, to ease moving library-specific settings
28# from config.gcc to this file. That is also why tmake_file is
29# left as tmake_file, rather than hmake_file, even though this library
30# switches on ${host}.
31
32# This file switches on the shell variable ${host}, and also uses the
33# following shell variables:
34#
35# with_* Various variables as set by configure.
36
37# This file sets the following shell variables for use by the
38# autoconf-generated configure script:
39#
40# asm_hidden_op The assembler pseudo-op to use for hide
41# lists for object files implemented in
42# assembly (with -fvisibility=hidden for C).
43# The default is ".hidden".
44# cpu_type The name of the cpu, if different from the first
45# chunk of the canonical host name.
a6f06169 46# enable_execute_stack The name of a source file implementing
47# __enable_execute_stack.
894a47b4 48# extra_parts List of extra object files that should be compiled
49# for this target machine. This may be overridden
50# by setting EXTRA_PARTS in a tmake_file fragment.
51# If either is set, EXTRA_PARTS and
52# EXTRA_MULTILIB_PARTS inherited from the GCC
53# subdirectory will be ignored.
1e53920f 54# md_unwind_header The name of a header file defining
55# MD_FALLBACK_FRAME_STATE_FOR.
84600db5 56# sfp_machine_header The name of a sfp-machine.h header file for soft-fp.
57# Defaults to "$cpu_type/sfp-machine.h" if it exists,
58# no-sfp-machine.h otherwise.
894a47b4 59# tmake_file A list of machine-description-specific
2219274c 60# makefile fragments.
022a2799 61# tm_defines List of target macros to define for all compilations.
62# tm_file A list of target macro files used only for code
63# built for the target, not the host. These files
64# are relative to $srcdir/config and must not have
65# the same names as files in $srcdir/../gcc/config.
e59be7e3 66# unwind_header The name of the header file declaring the unwind
67# runtime interface routines.
894a47b4 68
69asm_hidden_op=.hidden
a6f06169 70enable_execute_stack=
894a47b4 71extra_parts=
72tmake_file=
022a2799 73tm_file=
74tm_define=
1e53920f 75md_unwind_header=no-unwind.h
e59be7e3 76unwind_header=unwind-generic.h
894a47b4 77
78# Set default cpu_type so it can be updated in each machine entry.
79cpu_type=`echo ${host} | sed 's/-.*$//'`
80case ${host} in
81m32c*-*-*)
82 cpu_type=m32c
a23b9c51 83 tmake_file=t-fdpbit
894a47b4 84 ;;
1b3d2097 85aarch64*-*-*)
86 cpu_type=aarch64
87 ;;
894a47b4 88alpha*-*-*)
89 cpu_type=alpha
90 ;;
91am33_2.0-*-linux*)
92 cpu_type=mn10300
93 ;;
8eaaaea3 94arc*-*-*)
95 cpu_type=arc
96 ;;
894a47b4 97arm*-*-*)
98 cpu_type=arm
99 ;;
38dd5584 100avr-*-*)
101 cpu_type=avr
102 ;;
894a47b4 103bfin*-*)
104 cpu_type=bfin
105 ;;
b9fdd12b 106cr16-*-*)
107 ;;
b4294f67 108crisv32-*-*)
109 cpu_type=cris
110 ;;
d406228c 111csky*-*-*)
112 cpu_type=csky
113 ;;
278e2fd1 114fido-*-*)
115 cpu_type=m68k
116 ;;
894a47b4 117frv*) cpu_type=frv
118 ;;
b6616c9c 119ft32*) cpu_type=ft32
120 ;;
be52b6d8 121moxie*) cpu_type=moxie
122 ;;
894a47b4 123i[34567]86-*-*)
124 cpu_type=i386
125 ;;
126x86_64-*-*)
127 cpu_type=i386
128 ;;
129ia64-*-*)
130 ;;
6af9f7ea 131hppa*-*-*)
894a47b4 132 cpu_type=pa
133 ;;
f6fe91e8 134lm32*-*-*)
135 cpu_type=lm32
136 ;;
894a47b4 137m32r*-*-*)
138 cpu_type=m32r
139 ;;
894a47b4 140m68k-*-*)
141 ;;
d34b0d1e 142microblaze*-*-*)
143 cpu_type=microblaze
144 ;;
894a47b4 145mips*-*-*)
9bcbf352 146 # All MIPS targets provide a full set of FP routines.
894a47b4 147 cpu_type=mips
4b366ca9 148 tmake_file="mips/t-mips"
149 if test "${libgcc_cv_mips_hard_float}" = yes; then
150 tmake_file="${tmake_file} t-hardfp-sfdf t-hardfp"
151 else
152 tmake_file="${tmake_file} t-softfp-sfdf"
153 fi
9bcbf352 154 if test "${ac_cv_sizeof_long_double}" = 16; then
155 tmake_file="${tmake_file} mips/t-softfp-tf"
156 fi
157 if test "${host_address}" = 64; then
158 tmake_file="${tmake_file} mips/t-mips64"
159 fi
160 tmake_file="${tmake_file} t-softfp"
894a47b4 161 ;;
eae21ed1 162nds32*-*)
163 cpu_type=nds32
164 ;;
de65406d 165nios2*-*-*)
166 cpu_type=nios2
167 ;;
2acd4f1d 168or1k*-*-*)
169 cpu_type=or1k
170 ;;
894a47b4 171powerpc*-*-*)
172 cpu_type=rs6000
173 ;;
174rs6000*-*-*)
175 ;;
36387fad 176riscv*-*-*)
177 cpu_type=riscv
178 ;;
894a47b4 179sparc64*-*-*)
180 cpu_type=sparc
181 ;;
182sparc*-*-*)
183 cpu_type=sparc
184 ;;
185spu*-*-*)
186 cpu_type=spu
187 ;;
188s390*-*-*)
189 cpu_type=s390
190 ;;
191# Note the 'l'; we need to be able to match e.g. "shle" or "shl".
192sh[123456789lbe]*-*-*)
193 cpu_type=sh
194 ;;
2da35515 195tilegx*-*-*)
196 cpu_type=tilegx
197 ;;
198tilepro*-*-*)
199 cpu_type=tilepro
200 ;;
707238af 201v850*-*-*)
202 cpu_type=v850
203 ;;
5aa04b01 204tic6x-*-*)
205 cpu_type=c6x
206 ;;
894a47b4 207esac
208
209# Common parts for widely ported systems.
210case ${host} in
211*-*-darwin*)
212 asm_hidden_op=.private_extern
4dc4ff49 213 tmake_file="$tmake_file t-darwin ${cpu_type}/t-darwin t-libgcc-pic t-slibgcc-darwin"
2279ee63 214 extra_parts="crt3.o d10-uwfef.o crttms.o crttme.o"
894a47b4 215 ;;
463553db 216*-*-dragonfly*)
217 tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip"
218 tmake_file="$tmake_file t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver"
219 extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
220 ;;
894a47b4 221*-*-freebsd*)
222 # This is the generic ELF configuration of FreeBSD. Later
223 # machine-specific sections may refine and add to this
224 # configuration.
4dc4ff49 225 tmake_file="$tmake_file t-freebsd t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver"
237490bf 226 extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
a997b0d8 227 case ${target_thread_file} in
228 posix)
4dc4ff49 229 tmake_file="${tmake_file} t-freebsd-thread"
a997b0d8 230 # Before 5.0, FreeBSD can't bind shared libraries to -lc
231 # when "optionally" threaded via weak pthread_* checks.
232 case ${host} in
233 *-*-freebsd[34] | *-*-freebsd[34].*)
234 tmake_file="${tmake_file} t-slibgcc-nolc-override"
235 ;;
236 esac
237 ;;
238 esac
894a47b4 239 ;;
9b859c0a 240*-*-fuchsia*)
241 tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-fuchsia"
242 extra_parts="crtbegin.o crtend.o"
243 ;;
79573034 244*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
4dc4ff49 245 tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-linux"
ec5f5503 246 extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
247 if test x$enable_vtable_verify = xyes; then
248 extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o"
249 fi
894a47b4 250 ;;
237490bf 251*-*-lynxos*)
4dc4ff49 252 tmake_file="$tmake_file t-lynx $cpu_type/t-crtstuff t-crtstuff-pic t-libgcc-pic"
237490bf 253 extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
254 ;;
894a47b4 255*-*-netbsd*)
9834d450 256 tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip"
257 tmake_file="$tmake_file t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver"
7303090d 258 tmake_file="$tmake_file t-slibgcc-libgcc"
63d551af 259 extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o"
894a47b4 260 ;;
261*-*-openbsd*)
81ae3d37 262 tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip"
4dc4ff49 263 case ${target_thread_file} in
264 posix)
265 tmake_file="$tmake_file t-openbsd-thread"
266 ;;
267 esac
894a47b4 268 ;;
269*-*-rtems*)
fbb6f195 270 tmake_file="$tmake_file t-rtems"
237490bf 271 extra_parts="crtbegin.o crtend.o"
894a47b4 272 ;;
63abf89e 273*-*-solaris2*)
e59be7e3 274 # Unless linker support and dl_iterate_phdr are present,
275 # unwind-dw2-fde-dip.c automatically falls back to unwind-dw2-fde.c.
80fc7cb7 276 tmake_file="$tmake_file sol2/t-sol2 t-eh-dw2-dip t-crtstuff-pic t-libgcc-pic t-slibgcc t-slibgcc-elf-ver"
63abf89e 277 if test $with_gnu_ld = yes; then
278 tmake_file="$tmake_file t-slibgcc-gld"
279 else
280 tmake_file="$tmake_file t-slibgcc-sld"
281 fi
282 # Add cpu-specific t-sol2 after t-slibgcc-* so it can augment SHLIB_MAPFILES.
283 tmake_file="$tmake_file $cpu_type/t-sol2"
284 extra_parts="gmon.o crtbegin.o crtend.o"
ba24ad38 285 if test "${libgcc_cv_solaris_crts}" = yes; then
9273bda7 286 # Solaris 11.4 provides crt1.o, crti.o, and crtn.o as part of the
ba24ad38 287 # base system. crtp.o and crtpg.o implement the compiler-dependent parts.
288 extra_parts="$extra_parts crtp.o crtpg.o"
80fc7cb7 289 # If the Solaris CRTs are present, both ld and gld will have PIE support.
290 extra_parts="$extra_parts crtbeginS.o crtendS.o"
ba24ad38 291 else
292 case ${host} in
293 i?86-*-solaris2.1[0-9]* | x86_64-*-solaris2.1[0-9]*)
294 # Solaris 10+/x86 provides crt1.o, crti.o, crtn.o, and gcrt1.o as
295 # part of the base system.
296 ;;
297 sparc*-*-solaris2.1[0-9]*)
298 # Solaris 10+/SPARC lacks crt1.o and gcrt1.o.
299 extra_parts="$extra_parts crt1.o gcrt1.o"
300 ;;
301 esac
302 fi
08de21a4 303 if test x$enable_vtable_verify = xyes; then
304 extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o"
305 fi
63abf89e 306 ;;
237490bf 307*-*-uclinux*)
308 extra_parts="crtbegin.o crtend.o"
309 ;;
310*-*-*vms*)
311 tmake_file="vms/t-vms"
784576c7 312 extra_parts="crt0.o crtbegin.o crtbeginS.o crtend.o crtendS.o"
237490bf 313 ;;
0c11960e 314*-*-vxworks7*)
899cdd88 315 tmake_file=t-vxworks7
316 ;;
894a47b4 317*-*-vxworks*)
4dc4ff49 318 tmake_file=t-vxworks
894a47b4 319 ;;
320*-*-elf)
237490bf 321 extra_parts="crtbegin.o crtend.o"
894a47b4 322 ;;
323esac
324
a6f06169 325case ${host} in
463553db 326*-*-darwin* | *-*-dragonfly* | *-*-freebsd* | *-*-netbsd* | *-*-openbsd* | \
327 *-*-solaris2*)
a6f06169 328 enable_execute_stack=enable-execute-stack-mprotect.c
329 ;;
330i[34567]86-*-mingw* | x86_64-*-mingw*)
331 enable_execute_stack=config/i386/enable-execute-stack-mingw32.c
332 ;;
6a000628 333i[34567]86-*-cygwin* | x86_64-*-cygwin*)
334 enable_execute_stack=config/i386/enable-execute-stack-mingw32.c
335 ;;
a6f06169 336*)
337 enable_execute_stack=enable-execute-stack-empty.c;
338 ;;
339esac
340
894a47b4 341case ${host} in
05ea12a2 342aarch64*-*-elf | aarch64*-*-rtems*)
1b3d2097 343 extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o"
8f908dc5 344 extra_parts="$extra_parts crtfastmath.o"
1b3d2097 345 tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
8f908dc5 346 tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
d10c58fd 347 md_unwind_header=aarch64/aarch64-unwind.h
1b3d2097 348 ;;
88afddbc 349aarch64*-*-freebsd*)
350 extra_parts="$extra_parts crtfastmath.o"
351 tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
352 tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
319901d0 353 md_unwind_header=aarch64/freebsd-unwind.h
88afddbc 354 ;;
9b859c0a 355aarch64*-*-fuchsia*)
356 tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
357 tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp"
358 ;;
1b3d2097 359aarch64*-*-linux*)
8f908dc5 360 extra_parts="$extra_parts crtfastmath.o"
1b3d2097 361 md_unwind_header=aarch64/linux-unwind.h
362 tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
8f908dc5 363 tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
1b3d2097 364 ;;
17b3d2a8 365alpha*-*-linux*)
4dc4ff49 366 tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee t-crtfm alpha/t-linux"
cdca0ab7 367 extra_parts="$extra_parts crtfastmath.o"
1e53920f 368 md_unwind_header=alpha/linux-unwind.h
894a47b4 369 ;;
894a47b4 370alpha*-*-freebsd*)
4dc4ff49 371 tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee t-crtfm"
237490bf 372 extra_parts="$extra_parts crtbeginT.o crtfastmath.o"
894a47b4 373 ;;
374alpha*-*-netbsd*)
4dc4ff49 375 tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee"
894a47b4 376 ;;
377alpha*-*-openbsd*)
4dc4ff49 378 tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee"
894a47b4 379 ;;
894a47b4 380alpha64-dec-*vms*)
4dc4ff49 381 tmake_file="$tmake_file alpha/t-alpha alpha/t-ieee alpha/t-vms t-slibgcc-vms"
237490bf 382 extra_parts="$extra_parts vms-dwarf2.o vms-dwarf2eh.o"
1e53920f 383 md_unwind_header=alpha/vms-unwind.h
894a47b4 384 ;;
385alpha*-dec-*vms*)
4dc4ff49 386 tmake_file="$tmake_file alpha/t-alpha alpha/t-ieee alpha/t-vms t-slibgcc-vms"
237490bf 387 extra_parts="$extra_parts vms-dwarf2.o vms-dwarf2eh.o"
1e53920f 388 md_unwind_header=alpha/vms-unwind.h
894a47b4 389 ;;
8eaaaea3 390arc*-*-elf*)
8df543e1 391 tmake_file="arc/t-arc"
392 extra_parts="crti.o crtn.o crtend.o crtbegin.o crtendS.o crtbeginS.o"
393 extra_parts="$extra_parts crttls.o"
8eaaaea3 394 ;;
927c0132 395arc*-*-linux*)
8df543e1 396 tmake_file="${tmake_file} t-slibgcc-libgcc t-slibgcc-nolc-override arc/t-arc-uClibc arc/t-arc"
397 extra_parts="$extra_parts crti.o crtn.o"
74d8fa14 398 extra_parts="$extra_parts crttls.o"
e892f4fa 399 md_unwind_header=arc/linux-unwind.h
8eaaaea3 400 ;;
17a98fea 401arm-wrs-vxworks|arm-wrs-vxworks7)
f4f176bd 402 tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
237490bf 403 extra_parts="$extra_parts crti.o crtn.o"
17a98fea 404 case ${host} in
405 *-*-vxworks7)
406 # Note that arm/t-bpabi will reset the LIB2ADDEH macro.
407 # This is intentional.
408 tmake_file="$tmake_file arm/t-bpabi arm/t-vxworks7"
409 tm_file="$tm_file arm/bpabi-lib.h"
410 unwind_header=config/arm/unwind-arm.h
411 ;;
412 esac
894a47b4 413 ;;
275d0a7c 414arm*-*-freebsd*) # ARM FreeBSD EABI
415 tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix arm/t-elf"
8b9c62ca 416 tmake_file="${tmake_file} arm/t-bpabi arm/t-freebsd"
275d0a7c 417 tm_file="${tm_file} arm/bpabi-lib.h"
418 unwind_header=config/arm/unwind-arm.h
419 tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
420 ;;
9b859c0a 421arm*-*-fuchsia*)
422 tmake_file="${tmake_file} arm/t-arm arm/t-elf arm/t-bpabi"
423 tmake_file="${tmake_file} arm/tsoftfp t-softfp"
424 tm_file="${tm_file} arm/bpabi-lib.h"
425 unwind_header=config/arm/unwind-arm.h
426 ;;
894a47b4 427arm*-*-netbsdelf*)
4dc4ff49 428 tmake_file="$tmake_file arm/t-arm arm/t-netbsd t-slibgcc-gld-nover"
894a47b4 429 ;;
894a47b4 430arm*-*-linux*) # ARM GNU/Linux with ELF
1ddaa252 431 tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix t-crtfm"
6a11e52b 432 tmake_file="${tmake_file} arm/t-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc"
433 tm_file="$tm_file arm/bpabi-lib.h"
434 unwind_header=config/arm/unwind-arm.h
84600db5 435 tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
1ddaa252 436 extra_parts="$extra_parts crtfastmath.o"
894a47b4 437 ;;
438arm*-*-uclinux*) # ARM ucLinux
1ddaa252 439 tmake_file="${tmake_file} t-fixedpoint-gnu-prefix t-crtfm"
4ef5912a 440 tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
6a11e52b 441 tmake_file="${tmake_file} arm/t-bpabi"
442 tm_file="$tm_file arm/bpabi-lib.h"
443 unwind_header=config/arm/unwind-arm.h
237490bf 444 extra_parts="$extra_parts crti.o crtn.o"
894a47b4 445 ;;
21ecea39 446arm*-*-phoenix*)
447 tmake_file="t-hardfp t-softfp arm/t-arm arm/t-elf arm/t-softfp arm/t-phoenix"
448 tmake_file="${tmake_file} arm/t-bpabi"
449 tm_file="$tm_file arm/bpabi-lib.h"
450 extra_parts="crtbegin.o crtend.o crti.o crtn.o"
451 unwind_header=config/arm/unwind-arm.h
452 ;;
598ebe3d 453arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
9213d2eb 454 tmake_file="${tmake_file} arm/t-arm arm/t-elf t-fixedpoint-gnu-prefix"
022a2799 455 tm_file="$tm_file arm/bpabi-lib.h"
e59be7e3 456 case ${host} in
598ebe3d 457 arm*-*-eabi* | arm*-*-rtems*)
1ddaa252 458 tmake_file="${tmake_file} arm/t-bpabi t-crtfm"
237490bf 459 extra_parts="crtbegin.o crtend.o crti.o crtn.o"
e59be7e3 460 ;;
461 arm*-*-symbianelf*)
a997b0d8 462 tmake_file="${tmake_file} arm/t-symbian t-slibgcc-nolc-override"
022a2799 463 tm_file="$tm_file arm/symbian-lib.h"
237490bf 464 # Symbian OS provides its own startup code.
e59be7e3 465 ;;
466 esac
84600db5 467 tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
18e98669 468 extra_parts="$extra_parts crtfastmath.o"
e59be7e3 469 unwind_header=config/arm/unwind-arm.h
894a47b4 470 ;;
894a47b4 471avr-*-*)
a23b9c51 472 # Make HImode functions for AVR
473 tmake_file="${cpu_type}/t-avr t-fpbit"
fd28e216 474 if test x${with_avrlibc} != xno; then
475 tmake_file="$tmake_file ${cpu_type}/t-avrlibc"
476 fi
022a2799 477 tm_file="$tm_file avr/avr-lib.h"
894a47b4 478 ;;
479bfin*-elf*)
2219274c 480 tmake_file="bfin/t-bfin bfin/t-crtlibid bfin/t-crtstuff t-libgcc-pic t-fdpbit"
237490bf 481 extra_parts="$extra_parts crtbeginS.o crtendS.o crti.o crtn.o crtlibid.o"
894a47b4 482 ;;
483bfin*-uclinux*)
2219274c 484 tmake_file="bfin/t-bfin bfin/t-crtlibid bfin/t-crtstuff t-libgcc-pic t-fdpbit"
237490bf 485 extra_parts="$extra_parts crtbeginS.o crtendS.o crtlibid.o"
1e53920f 486 md_unwind_header=bfin/linux-unwind.h
894a47b4 487 ;;
bce94ab5 488bfin*-linux-uclibc*)
2219274c 489 tmake_file="$tmake_file bfin/t-bfin bfin/t-crtstuff t-libgcc-pic t-fdpbit bfin/t-linux"
bce94ab5 490 # No need to build crtbeginT.o on uClibc systems. Should probably
491 # be moved to the OS specific section above.
492 extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
1e53920f 493 md_unwind_header=bfin/linux-unwind.h
bce94ab5 494 ;;
a23b9c51 495bfin*-rtems*)
9213d2eb 496 tmake_file="$tmake_file bfin/t-bfin t-fdpbit"
237490bf 497 extra_parts="$extra_parts crti.o crtn.o"
a23b9c51 498 ;;
894a47b4 499bfin*-*)
9213d2eb 500 tmake_file="$tmake_file bfin/t-bfin t-fdpbit"
237490bf 501 extra_parts="crtbegin.o crtend.o crti.o crtn.o"
894a47b4 502 ;;
b9fdd12b 503cr16-*-elf)
504 tmake_file="${tmake_file} cr16/t-cr16 cr16/t-crtlibid t-fdpbit"
505 extra_parts="$extra_parts crti.o crtn.o crtlibid.o"
506 ;;
237490bf 507crisv32-*-elf)
b4294f67 508 tmake_file="$tmake_file cris/t-cris t-softfp-sfdf t-softfp"
237490bf 509 ;;
237490bf 510cris-*-elf)
b4294f67 511 tmake_file="$tmake_file cris/t-cris t-softfp-sfdf t-softfp cris/t-elfmulti"
237490bf 512 ;;
877d7f12 513cris-*-linux* | crisv32-*-linux*)
b4294f67 514 tmake_file="$tmake_file cris/t-cris t-softfp-sfdf t-softfp cris/t-linux"
894a47b4 515 ;;
d406228c 516csky-*-elf*)
517 tmake_file="csky/t-csky t-fdpbit"
518 extra_parts="$extra_parts crti.o crtn.o"
519 ;;
520csky-*-linux*)
521 tmake_file="$tmake_file csky/t-csky t-slibgcc-libgcc t-fdpbit csky/t-linux-csky"
522 extra_parts="$extra_parts crti.o crtn.o"
523 md_unwind_header=csky/linux-unwind.h
524 ;;
1c579c0e 525epiphany-*-elf* | epiphany-*-rtems*)
526 tmake_file="$tmake_file epiphany/t-epiphany t-fdpbit epiphany/t-custom-eqsf"
d19f5793 527 extra_parts="$extra_parts crti.o crtint.o crtrunc.o crtm1reg-r43.o crtm1reg-r63.o crtn.o"
528 ;;
894a47b4 529fr30-*-elf)
9213d2eb 530 tmake_file="$tmake_file fr30/t-fr30 t-fdpbit"
237490bf 531 extra_parts="$extra_parts crti.o crtn.o"
894a47b4 532 ;;
533frv-*-elf)
237490bf 534 tmake_file="$tmake_file frv/t-frv t-fdpbit"
005a5ef5 535 tm_file="$tm_file frv/elf-lib.h frv/frv-abi.h"
237490bf 536 # Don't use crtbegin.o, crtend.o.
537 extra_parts="frvbegin.o frvend.o"
894a47b4 538 ;;
539frv-*-*linux*)
9213d2eb 540 tmake_file="$tmake_file frv/t-frv frv/t-linux t-fdpbit"
005a5ef5 541 tm_file="$tm_file frv/elf-lib.h frv/frv-abi.h"
894a47b4 542 ;;
b6616c9c 543ft32-*-elf)
544 tmake_file="ft32/t-ft32 t-softfp-sfdf t-softfp-excl t-softfp"
545 extra_parts="$extra_parts crti.o crti-hw.o crtn.o"
546 ;;
894a47b4 547h8300-*-elf*)
9213d2eb 548 tmake_file="$tmake_file h8300/t-h8300 t-fpbit"
022a2799 549 tm_file="$tm_file h8300/h8300-lib.h"
237490bf 550 extra_parts="$extra_parts crti.o crtn.o"
894a47b4 551 ;;
acff2768 552h8300-*-linux*)
553 tmake_file="t-linux h8300/t-linux t-softfp-sfdf t-softfp"
554 tm_file="$tm_file h8300/h8300-lib.h"
555 ;;
6af9f7ea 556hppa*64*-*-linux*)
9213d2eb 557 tmake_file="$tmake_file pa/t-linux pa/t-linux64"
a99f9d91 558 extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
894a47b4 559 ;;
6af9f7ea 560hppa*-*-linux*)
9213d2eb 561 tmake_file="$tmake_file pa/t-linux t-slibgcc-libgcc"
a997b0d8 562 # Set the libgcc version number
177cc56c 563 if test x$ac_cv_sjlj_exceptions = xyes; then
a997b0d8 564 tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver"
565 else
566 tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
567 fi
a99f9d91 568 extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
01cb8ad1 569 md_unwind_header=pa/linux-unwind.h
894a47b4 570 ;;
571hppa[12]*-*-hpux10*)
4dc4ff49 572 tmake_file="$tmake_file pa/t-hpux pa/t-hpux10 t-libgcc-pic t-slibgcc"
a997b0d8 573 # Set the libgcc version number
177cc56c 574 if test x$ac_cv_sjlj_exceptions = xyes; then
a997b0d8 575 tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver"
576 else
577 tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
578 fi
579 tmake_file="$tmake_file pa/t-slibgcc-hpux t-slibgcc-hpux"
1e53920f 580 md_unwind_header=pa/hpux-unwind.h
894a47b4 581 ;;
582hppa*64*-*-hpux11*)
ab4fdb3d 583 tmake_file="$tmake_file pa/t-hpux pa/t-pa64 pa/t-stublib t-libgcc-pic t-slibgcc"
a997b0d8 584 # Set the libgcc version number
177cc56c 585 if test x$ac_cv_sjlj_exceptions = xyes; then
a997b0d8 586 tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver"
587 else
588 tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
589 fi
590 tmake_file="$tmake_file pa/t-slibgcc-hpux t-slibgcc-hpux"
677e8b73 591 tm_file="$tm_file pa/pa64-hpux-lib.h"
237490bf 592 extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o \
593 libgcc_stub.a"
1e53920f 594 md_unwind_header=pa/hpux-unwind.h
894a47b4 595 ;;
596hppa[12]*-*-hpux11*)
4dc4ff49 597 tmake_file="$tmake_file pa/t-hpux pa/t-stublib t-libgcc-pic t-slibgcc"
a997b0d8 598 # Set the libgcc version number
177cc56c 599 if test x$ac_cv_sjlj_exceptions = xyes; then
a997b0d8 600 tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver"
601 else
602 tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
603 fi
604 tmake_file="$tmake_file pa/t-slibgcc-hpux t-slibgcc-hpux"
237490bf 605 extra_parts="libgcc_stub.a"
1e53920f 606 md_unwind_header=pa/hpux-unwind.h
894a47b4 607 ;;
07cf7615 608hppa*-*-openbsd*)
609 tmake_file="$tmake_file pa/t-openbsd"
610 ;;
894a47b4 611i[34567]86-*-darwin*)
65e1ae67 612 tmake_file="$tmake_file i386/t-crtpc t-crtfm i386/t-msabi"
022a2799 613 tm_file="$tm_file i386/darwin-lib.h"
ba079bc9 614 extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
894a47b4 615 ;;
616x86_64-*-darwin*)
65e1ae67 617 tmake_file="$tmake_file i386/t-crtpc t-crtfm i386/t-msabi"
022a2799 618 tm_file="$tm_file i386/darwin-lib.h"
ba079bc9 619 extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
894a47b4 620 ;;
146896ec 621i[34567]86-*-elfiamcu)
622 tmake_file="$tmake_file i386/t-crtstuff t-softfp-sfdftf i386/32/t-softfp i386/32/t-iamcu i386/t-softfp t-softfp t-dfprules"
623 ;;
894a47b4 624i[34567]86-*-elf*)
4dc4ff49 625 tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic"
894a47b4 626 ;;
1e085786 627x86_64-*-elf* | x86_64-*-rtems*)
4dc4ff49 628 tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic"
ab55f7db 629 case ${host} in
630 x86_64-*-rtems*)
631 extra_parts="$extra_parts crti.o crtn.o"
632 ;;
633 esac
cc8ebe39 634 ;;
9b859c0a 635x86_64-*-fuchsia*)
636 tmake_file="$tmake_file t-libgcc-pic"
637 ;;
463553db 638i[34567]86-*-dragonfly*)
639 tmake_file="${tmake_file} i386/t-dragonfly i386/t-crtstuff"
640 md_unwind_header=i386/dragonfly-unwind.h
641 ;;
642x86_64-*-dragonfly*)
643 tmake_file="${tmake_file} i386/t-dragonfly i386/t-crtstuff"
644 md_unwind_header=i386/dragonfly-unwind.h
645 ;;
894a47b4 646i[34567]86-*-freebsd*)
237490bf 647 tmake_file="${tmake_file} i386/t-freebsd i386/t-crtstuff"
328976ed 648 md_unwind_header=i386/freebsd-unwind.h
894a47b4 649 ;;
650x86_64-*-freebsd*)
237490bf 651 tmake_file="${tmake_file} i386/t-freebsd i386/t-crtstuff"
328976ed 652 md_unwind_header=i386/freebsd-unwind.h
894a47b4 653 ;;
654i[34567]86-*-netbsdelf*)
a1928e5c 655 tmake_file="${tmake_file} i386/t-crtstuff"
894a47b4 656 ;;
894a47b4 657x86_64-*-netbsd*)
237490bf 658 tmake_file="${tmake_file} i386/t-crtstuff"
894a47b4 659 ;;
894a47b4 660i[34567]86-*-openbsd*)
661 ;;
51796b3a 662x86_64-*-openbsd*)
663 ;;
fe27820f 664i[34567]86-*-linux*)
6d057ce8 665 extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
2a8549e0 666 tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules"
58ca7445 667 tm_file="${tm_file} i386/elf-lib.h"
1e53920f 668 md_unwind_header=i386/linux-unwind.h
894a47b4 669 ;;
79573034 670i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
fe27820f 671 extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
2a8549e0 672 tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules"
58ca7445 673 tm_file="${tm_file} i386/elf-lib.h"
fe27820f 674 ;;
675x86_64-*-linux*)
6d057ce8 676 extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
2a8549e0 677 tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules"
58ca7445 678 tm_file="${tm_file} i386/elf-lib.h"
1e53920f 679 md_unwind_header=i386/linux-unwind.h
894a47b4 680 ;;
79573034 681x86_64-*-kfreebsd*-gnu)
fe27820f 682 extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
2a8549e0 683 tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules"
58ca7445 684 tm_file="${tm_file} i386/elf-lib.h"
fe27820f 685 ;;
894a47b4 686i[34567]86-pc-msdosdjgpp*)
687 ;;
688i[34567]86-*-lynxos*)
689 ;;
894a47b4 690i[34567]86-*-nto-qnx*)
4dc4ff49 691 tmake_file="$tmake_file i386/t-nto t-libgcc-pic"
237490bf 692 extra_parts=crtbegin.o
894a47b4 693 ;;
694i[34567]86-*-rtems*)
ac34f4bd 695 tmake_file="$tmake_file i386/t-crtstuff t-softfp-sfdftf i386/32/t-softfp i386/t-softfp t-softfp"
237490bf 696 extra_parts="$extra_parts crti.o crtn.o"
894a47b4 697 ;;
14f27bc6 698i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
65e1ae67 699 tmake_file="$tmake_file i386/t-crtpc t-crtfm i386/t-msabi"
ba079bc9 700 extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
43cbcd84 701 tm_file="${tm_file} i386/elf-lib.h"
1e53920f 702 md_unwind_header=i386/sol2-unwind.h
894a47b4 703 ;;
0e50554f 704i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae|i[4567]86-wrs-vxworks7|x86_64-wrs-vxworks7)
894a47b4 705 ;;
1e53920f 706i[34567]86-*-cygwin*)
1db4f54b 707 extra_parts="crtbegin.o crtbeginS.o crtend.o crtfastmath.o"
5be42fa9 708 if test x$enable_vtable_verify = xyes; then
709 extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o"
710 fi
a997b0d8 711 # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
177cc56c 712 if test x$ac_cv_sjlj_exceptions = xyes; then
a997b0d8 713 tmake_eh_file="i386/t-sjlj-eh"
714 else
715 tmake_eh_file="i386/t-dw2-eh"
716 fi
717 # Shared libgcc DLL install dir depends on cross/native build.
718 if test x${build} = x${host} ; then
719 tmake_dlldir_file="i386/t-dlldir"
720 else
721 tmake_dlldir_file="i386/t-dlldir-x"
722 fi
2a8549e0 723 tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-slibgcc-cygming i386/t-cygming i386/t-cygwin t-crtfm i386/t-chkstk t-dfprules"
8f433c51 724 ;;
45d13ef4 725x86_64-*-cygwin*)
1db4f54b 726 extra_parts="crtbegin.o crtbeginS.o crtend.o crtfastmath.o"
5be42fa9 727 if test x$enable_vtable_verify = xyes; then
728 extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o"
729 fi
45d13ef4 730 # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
177cc56c 731 if test x$ac_cv_sjlj_exceptions = xyes; then
45d13ef4 732 tmake_eh_file="i386/t-sjlj-eh"
51d42eb1 733 elif test "${host_address}" = 32; then
734 # biarch -m32 with --disable-sjlj-exceptions
735 tmake_eh_file="i386/t-dw2-eh"
45d13ef4 736 else
737 tmake_eh_file="i386/t-seh-eh"
738 fi
739 # Shared libgcc DLL install dir depends on cross/native build.
740 if test x${build} = x${host} ; then
741 tmake_dlldir_file="i386/t-dlldir"
742 else
743 tmake_dlldir_file="i386/t-dlldir-x"
744 fi
745 # FIXME - dj - t-chkstk used to be in here, need a 64-bit version of that
2a8549e0 746 tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-slibgcc-cygming i386/t-cygming i386/t-cygwin t-crtfm t-dfprules i386/t-chkstk"
45d13ef4 747 ;;
1e53920f 748i[34567]86-*-mingw*)
749 extra_parts="crtbegin.o crtend.o crtfastmath.o"
5be42fa9 750 if test x$enable_vtable_verify = xyes; then
751 extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o"
752 fi
4dc4ff49 753 case ${target_thread_file} in
754 win32)
755 tmake_file="$tmake_file i386/t-gthr-win32"
756 ;;
2d00fffd 757 posix)
758 tmake_file="i386/t-mingw-pthread $tmake_file"
759 ;;
4dc4ff49 760 esac
a997b0d8 761 # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
177cc56c 762 if test x$ac_cv_sjlj_exceptions = xyes; then
a997b0d8 763 tmake_eh_file="i386/t-sjlj-eh"
764 else
765 tmake_eh_file="i386/t-dw2-eh"
7ed6dbef 766 md_unwind_header=i386/w32-unwind.h
a997b0d8 767 fi
768 # Shared libgcc DLL install dir depends on cross/native build.
769 if test x${build} = x${host} ; then
770 tmake_dlldir_file="i386/t-dlldir"
771 else
772 tmake_dlldir_file="i386/t-dlldir-x"
773 fi
2a8549e0 774 tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-slibgcc-cygming i386/t-cygming i386/t-mingw32 t-crtfm i386/t-chkstk t-dfprules"
1e53920f 775 ;;
8f433c51 776x86_64-*-mingw*)
4dc4ff49 777 case ${target_thread_file} in
778 win32)
779 tmake_file="$tmake_file i386/t-gthr-win32"
780 ;;
2d00fffd 781 posix)
782 tmake_file="i386/t-mingw-pthread $tmake_file"
783 ;;
4dc4ff49 784 esac
a997b0d8 785 # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
177cc56c 786 if test x$ac_cv_sjlj_exceptions = xyes; then
a997b0d8 787 tmake_eh_file="i386/t-sjlj-eh"
51d42eb1 788 elif test "${host_address}" = 32; then
789 # biarch -m32 with --disable-sjlj-exceptions
790 tmake_eh_file="i386/t-dw2-eh"
791 md_unwind_header=i386/w32-unwind.h
a997b0d8 792 else
8ad0b530 793 tmake_eh_file="i386/t-seh-eh"
a997b0d8 794 fi
795 # Shared libgcc DLL install dir depends on cross/native build.
796 if test x${build} = x${host} ; then
797 tmake_dlldir_file="i386/t-dlldir"
798 else
799 tmake_dlldir_file="i386/t-dlldir-x"
800 fi
2a8549e0 801 tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-slibgcc-cygming i386/t-cygming i386/t-mingw32 t-dfprules t-crtfm i386/t-chkstk"
0624d0c7 802 extra_parts="$extra_parts crtbegin.o crtend.o crtfastmath.o"
5be42fa9 803 if test x$enable_vtable_verify = xyes; then
804 extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o"
805 fi
894a47b4 806 ;;
894a47b4 807ia64*-*-elf*)
237490bf 808 extra_parts="$extra_parts crtbeginS.o crtendS.o crtfastmath.o"
dff001ee 809 tmake_file="ia64/t-ia64 ia64/t-ia64-elf ia64/t-eh-ia64 t-crtfm t-softfp-tf ia64/t-softfp t-softfp ia64/t-softfp-compat"
894a47b4 810 ;;
811ia64*-*-freebsd*)
237490bf 812 extra_parts="$extra_parts crtfastmath.o"
dff001ee 813 tmake_file="$tmake_file ia64/t-ia64 ia64/t-ia64-elf ia64/t-eh-ia64 t-crtfm t-softfp-tf ia64/t-softfp t-softfp ia64/t-softfp-compat"
894a47b4 814 ;;
815ia64*-*-linux*)
237490bf 816 # Don't use crtbeginT.o from *-*-linux* default.
894a47b4 817 extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
2ff958e6 818 tmake_file="$tmake_file ia64/t-ia64 ia64/t-ia64-elf t-crtfm t-softfp-tf ia64/t-softfp t-softfp ia64/t-softfp-compat ia64/t-eh-ia64 t-libunwind ia64/t-linux"
e59be7e3 819 if test x$with_system_libunwind != xyes ; then
a997b0d8 820 tmake_file="${tmake_file} t-libunwind-elf ia64/t-linux-libunwind"
e59be7e3 821 fi
1e53920f 822 md_unwind_header=ia64/linux-unwind.h
894a47b4 823 ;;
824ia64*-*-hpux*)
2ff958e6 825 tmake_file="ia64/t-ia64 ia64/t-ia64-elf ia64/t-hpux t-slibgcc ia64/t-slibgcc-hpux t-slibgcc-hpux"
894a47b4 826 ;;
9b9a2528 827ia64-hp-*vms*)
dff001ee 828 tmake_file="$tmake_file ia64/t-ia64 ia64/t-eh-ia64 ia64/t-vms t-slibgcc-vms t-softfp-tf ia64/t-softfp t-softfp"
237490bf 829 extra_parts="$extra_parts crtinitS.o"
1e53920f 830 md_unwind_header=ia64/vms-unwind.h
9b9a2528 831 ;;
894a47b4 832iq2000*-*-elf*)
08417926 833 tmake_file="iq2000/t-iq2000 t-fdpbit"
237490bf 834 # Don't use default.
835 extra_parts=
894a47b4 836 ;;
fbb6f195 837lm32-*-elf*)
237490bf 838 extra_parts="$extra_parts crti.o crtn.o"
84600db5 839 tmake_file="lm32/t-lm32 lm32/t-elf t-softfp-sfdf t-softfp"
f6fe91e8 840 ;;
fbb6f195 841lm32-*-rtems*)
842 tmake_file="$tmake_file lm32/t-lm32 lm32/t-elf t-softfp-sfdf t-softfp"
843 extra_parts="$extra_parts crti.o crtn.o"
844 ;;
f6fe91e8 845lm32-*-uclinux*)
237490bf 846 extra_parts="$extra_parts crtbegin.o crtendS.o crtbeginT.o"
4dc4ff49 847 tmake_file="lm32/t-lm32 lm32/t-uclinux t-libgcc-pic t-softfp-sfdf t-softfp"
f6fe91e8 848 ;;
237490bf 849m32r-*-elf*)
78c81e30 850 tmake_file="$tmake_file m32r/t-m32r t-fdpbit"
851 extra_parts="$extra_parts crtinit.o crtfini.o"
894a47b4 852 ;;
853m32rle-*-elf*)
a23b9c51 854 tmake_file=t-fdpbit
894a47b4 855 ;;
856m32r-*-linux*)
237490bf 857 tmake_file="$tmake_file m32r/t-linux t-fdpbit"
894a47b4 858 ;;
859m32rle-*-linux*)
237490bf 860 tmake_file="$tmake_file m32r/t-linux t-fdpbit"
894a47b4 861 ;;
9213d2eb 862m68k-*-elf* | fido-*-elf)
863 tmake_file="$tmake_file m68k/t-floatlib"
894a47b4 864 ;;
6af9f7ea 865m68k*-*-netbsdelf*)
894a47b4 866 ;;
867m68k*-*-openbsd*)
868 ;;
5bb27b7c 869m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux with uClibc
870 tmake_file="$tmake_file m68k/t-floatlib m68k/t-linux"
1e53920f 871 md_unwind_header=m68k/linux-unwind.h
894a47b4 872 ;;
1e53920f 873m68k-*-linux*) # Motorola m68k's running GNU/Linux
894a47b4 874 # with ELF format using glibc 2
875 # aka the GNU/Linux C library 6.
5bb27b7c 876 tmake_file="$tmake_file m68k/t-floatlib m68k/t-linux"
177cc56c 877 # If not configured with setjmp/longjmp exceptions, bump the
a997b0d8 878 # libgcc version number.
177cc56c 879 if test x$ac_cv_sjlj_exceptions != xyes; then
a997b0d8 880 tmake_file="$tmake_file m68k/t-slibgcc-elf-ver"
881 fi
1e53920f 882 md_unwind_header=m68k/linux-unwind.h
894a47b4 883 ;;
884m68k-*-rtems*)
9213d2eb 885 tmake_file="$tmake_file m68k/t-floatlib"
237490bf 886 extra_parts="$extra_parts crti.o crtn.o"
894a47b4 887 ;;
888mcore-*-elf)
9213d2eb 889 tmake_file="mcore/t-mcore t-fdpbit"
237490bf 890 extra_parts="$extra_parts crti.o crtn.o"
894a47b4 891 ;;
a997b0d8 892microblaze*-linux*)
c48df545 893 tmake_file="${tmake_file} microblaze/t-microblaze t-fdpbit t-slibgcc-libgcc"
a997b0d8 894 ;;
98f2ac05 895microblaze*-*-elf)
896 tmake_file="${tmake_file} microblaze/t-microblaze t-fdpbit"
897 extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o crti.o crtn.o"
d34b0d1e 898 ;;
d742e92d 899microblaze*-*-rtems*)
900 tmake_file="${tmake_file} microblaze/t-microblaze t-fdpbit"
901 extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o crti.o crtn.o"
902 ;;
894a47b4 903mips*-*-netbsd*) # NetBSD/mips, either endian.
904 ;;
894a47b4 905mips*-*-linux*) # Linux MIPS, either endian.
283681bb 906 extra_parts="$extra_parts crtfastmath.o"
60b34f30 907 tmake_file="${tmake_file} t-crtfm"
60b34f30 908 case ${host} in
272552a3 909 mips64r5900* | mipsr5900*)
910 # The MIPS16 support code uses floating point
911 # instructions that are not supported on r5900.
912 ;;
913 *)
914 tmake_file="${tmake_file} mips/t-mips16 t-slibgcc-libgcc"
915 ;;
60b34f30 916 esac
1e53920f 917 md_unwind_header=mips/linux-unwind.h
894a47b4 918 ;;
a23b9c51 919mips*-sde-elf*)
20dbbfaf 920 tmake_file="$tmake_file mips/t-crtstuff mips/t-mips16"
a23b9c51 921 case "${with_newlib}" in
922 yes)
923 # newlib / libgloss.
924 ;;
925 *)
926 # MIPS toolkit libraries.
237490bf 927 tmake_file="$tmake_file mips/t-sdemtk"
a23b9c51 928 ;;
929 esac
237490bf 930 extra_parts="$extra_parts crti.o crtn.o"
a23b9c51 931 ;;
21889c08 932mipsisa32-*-elf* | mipsisa32el-*-elf* | \
933mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
78645e70 934mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
21889c08 935mipsisa64-*-elf* | mipsisa64el-*-elf* | \
78645e70 936mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
937mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
4dc4ff49 938 tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16"
237490bf 939 extra_parts="$extra_parts crti.o crtn.o"
77a32a8e 940 ;;
894a47b4 941mipsisa64sr71k-*-elf*)
20dbbfaf 942 tmake_file="$tmake_file mips/t-elf mips/t-crtstuff t-fdpbit"
237490bf 943 extra_parts="$extra_parts crti.o crtn.o"
894a47b4 944 ;;
945mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
4dc4ff49 946 tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16"
237490bf 947 extra_parts="$extra_parts crti.o crtn.o"
894a47b4 948 ;;
949mips-*-elf* | mipsel-*-elf*)
4dc4ff49 950 tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16"
237490bf 951 extra_parts="$extra_parts crti.o crtn.o"
894a47b4 952 ;;
60b34f30 953mipsr5900-*-elf* | mipsr5900el-*-elf*)
954 tmake_file="$tmake_file mips/t-elf mips/t-crtstuff"
955 extra_parts="$extra_parts crti.o crtn.o"
956 ;;
894a47b4 957mips64-*-elf* | mips64el-*-elf*)
4dc4ff49 958 tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16"
237490bf 959 extra_parts="$extra_parts crti.o crtn.o"
894a47b4 960 ;;
60b34f30 961mips64r5900-*-elf* | mips64r5900el-*-elf*)
962 tmake_file="$tmake_file mips/t-elf mips/t-crtstuff"
963 extra_parts="$extra_parts crti.o crtn.o"
964 ;;
894a47b4 965mips64vr-*-elf* | mips64vrel-*-elf*)
4dc4ff49 966 tmake_file="$tmake_file mips/t-elf mips/t-vr mips/t-crtstuff"
237490bf 967 extra_parts="$extra_parts crti.o crtn.o"
894a47b4 968 ;;
969mips64orion-*-elf* | mips64orionel-*-elf*)
4dc4ff49 970 tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16"
237490bf 971 extra_parts="$extra_parts crti.o crtn.o"
894a47b4 972 ;;
973mips*-*-rtems*)
4dc4ff49 974 tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16"
237490bf 975 extra_parts="$extra_parts crti.o crtn.o"
894a47b4 976 ;;
977mips-wrs-vxworks)
978 ;;
894a47b4 979mipstx39-*-elf* | mipstx39el-*-elf*)
237490bf 980 tmake_file="$tmake_file mips/t-crtstuff mips/t-mips16"
894a47b4 981 ;;
982mmix-knuth-mmixware)
8525326e 983 extra_parts="crti.o crtn.o crtbegin.o crtend.o"
984 tmake_file="${tmake_file} ${cpu_type}/t-${cpu_type}"
894a47b4 985 ;;
986mn10300-*-*)
a23b9c51 987 tmake_file=t-fdpbit
894a47b4 988 ;;
ffdf58db 989moxie-*-elf | moxie-*-moxiebox* | moxie-*-uclinux* | moxie-*-rtems*)
fbb6f195 990 tmake_file="$tmake_file moxie/t-moxie t-softfp-sfdf t-softfp-excl t-softfp"
ffdf58db 991 extra_parts="$extra_parts crti.o crtn.o crtbegin.o crtend.o"
be52b6d8 992 ;;
e4a25868 993msp430*-*-elf)
994 tmake_file="$tm_file t-crtstuff t-fdpbit msp430/t-msp430"
7ed86ba5 995 extra_parts="$extra_parts libmul_none.a libmul_16.a libmul_32.a libmul_f5.a"
e4a25868 996 ;;
a5a22b4f 997nds32*-linux*)
998 # Basic makefile fragment and extra_parts for crt stuff.
999 # We also append c-isr library implementation.
1000 tmake_file="${tmake_file} t-slibgcc-libgcc"
1001 tmake_file="${tmake_file} nds32/t-nds32-glibc nds32/t-crtstuff t-softfp-sfdf t-softfp"
1002 # The header file of defining MD_FALLBACK_FRAME_STATE_FOR.
1003 md_unwind_header=nds32/linux-unwind.h
1004 # Append library definition makefile fragment according to --with-nds32-lib=X setting.
1005 case "${with_nds32_lib}" in
1006 "" | glibc | uclibc )
1007 ;;
1008 *)
1009 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: glibc uclibc" 1>&2
1010 exit 1
1011 ;;
1012 esac
1013 ;;
eae21ed1 1014nds32*-elf*)
1015 # Basic makefile fragment and extra_parts for crt stuff.
1016 # We also append c-isr library implementation.
1017 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-nds32-isr"
1018 extra_parts="crtbegin1.o crtend1.o libnds32_isr.a"
1019 # Append library definition makefile fragment according to --with-nds32-lib=X setting.
1020 case "${with_nds32_lib}" in
1021 "" | newlib)
1022 # Append library definition makefile fragment t-nds32-newlib.
1023 # Append 'soft-fp' software floating point make rule fragment provided by gcc.
1024 tmake_file="${tmake_file} nds32/t-nds32-newlib t-softfp-sfdf t-softfp"
1025 ;;
1026 mculib)
1027 # Append library definition makefile fragment t-nds32-mculib.
1028 # The software floating point library is included in mculib.
1029 tmake_file="${tmake_file} nds32/t-nds32-mculib"
1030 ;;
1031 *)
1032 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib" 1>&2
1033 exit 1
1034 ;;
1035 esac
1036 ;;
de65406d 1037nios2-*-linux*)
1038 tmake_file="$tmake_file nios2/t-nios2 nios2/t-linux t-libgcc-pic t-slibgcc-libgcc"
de65406d 1039 md_unwind_header=nios2/linux-unwind.h
1040 ;;
1041nios2-*-*)
1042 tmake_file="$tmake_file nios2/t-nios2 t-softfp-sfdf t-softfp-excl t-softfp"
1043 extra_parts="$extra_parts crti.o crtn.o"
1044 ;;
2acd4f1d 1045or1k-*-linux*)
1046 tmake_file="$tmake_file or1k/t-or1k"
1047 tmake_file="$tmake_file t-softfp-sfdf t-softfp"
1048 md_unwind_header=or1k/linux-unwind.h
1049 ;;
1050or1k-*-*)
1051 tmake_file="$tmake_file or1k/t-or1k"
1052 tmake_file="$tmake_file t-softfp-sfdf t-softfp"
1053 ;;
894a47b4 1054pdp11-*-*)
4dc4ff49 1055 tmake_file="pdp11/t-pdp11 t-fdpbit"
894a47b4 1056 ;;
894a47b4 1057powerpc-*-darwin*)
1e53920f 1058 case ${host} in
1059 *-*-darwin9* | *-*-darwin[12][0-9]*)
1060 # libSystem contains unwind information for signal frames since
1061 # Darwin 9.
1062 ;;
1063 *)
1064 md_unwind_header=rs6000/darwin-unwind.h
1065 ;;
1066 esac
84600db5 1067 tmake_file="$tmake_file rs6000/t-ibm-ldouble"
1a4a11f3 1068 extra_parts="$extra_parts crt2.o"
894a47b4 1069 ;;
1070powerpc64-*-darwin*)
4dc4ff49 1071 tmake_file="$tmake_file rs6000/t-darwin64 rs6000/t-ibm-ldouble"
1a4a11f3 1072 extra_parts="$extra_parts crt2.o"
894a47b4 1073 ;;
bdd1ee48 1074powerpc*-*-freebsd*)
1075 tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff rs6000/t-freebsd t-softfp-sfdf t-softfp-excl t-softfp"
237490bf 1076 extra_parts="$extra_parts crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
bdd1ee48 1077 case ${host} in
1078 powerpc64*)
1079 tmake_file="${tmake_file} rs6000/t-freebsd64"
1080 md_unwind_header=rs6000/freebsd-unwind.h
1081 ;;
1082 esac
894a47b4 1083 ;;
1084powerpc-*-netbsd*)
08417926 1085 tmake_file="$tmake_file rs6000/t-netbsd rs6000/t-crtstuff"
894a47b4 1086 ;;
894a47b4 1087powerpc-*-eabispe*)
16348e18 1088 tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
237490bf 1089 extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
894a47b4 1090 ;;
1091powerpc-*-eabisimaltivec*)
738c50b8 1092 tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
237490bf 1093 extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
894a47b4 1094 ;;
1095powerpc-*-eabisim*)
738c50b8 1096 tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
237490bf 1097 extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
894a47b4 1098 ;;
1099powerpc-*-elf*)
47ab8c10 1100 tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
237490bf 1101 extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
894a47b4 1102 ;;
1103powerpc-*-eabialtivec*)
738c50b8 1104 tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
237490bf 1105 extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
a23b9c51 1106 ;;
1107powerpc-xilinx-eabi*)
738c50b8 1108 tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
237490bf 1109 extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
894a47b4 1110 ;;
1111powerpc-*-eabi*)
738c50b8 1112 tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
237490bf 1113 extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
894a47b4 1114 ;;
1115powerpc-*-rtems*)
a2397d15 1116 tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
237490bf 1117 extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
894a47b4 1118 ;;
d80dc920 1119powerpc*-*-linux*)
e707b8cc 1120 tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff rs6000/t-linux t-dfprules rs6000/t-ppc64-fp t-slibgcc-libgcc"
ec3f28c9 1121 tmake_file="${tmake_file} t-stack rs6000/t-stack-rs6000"
fd1eaa27 1122 case $ppc_fp_type in
1123 64)
1124 ;;
1125 hard)
1126 tmake_file="${tmake_file} t-hardfp-sfdf t-hardfp"
1127 ;;
1128 soft)
0e36a0d7 1129 tmake_file="${tmake_file} t-softfp-sfdf ${ppc_fp_compat} t-softfp"
fd1eaa27 1130 ;;
d9b5cf5c 1131 e500v1)
0e36a0d7 1132 tmake_file="${tmake_file} rs6000/t-e500v1-fp ${ppc_fp_compat} t-softfp t-hardfp"
d9b5cf5c 1133 ;;
1134 e500v2)
0e36a0d7 1135 tmake_file="${tmake_file} t-hardfp-sfdf rs6000/t-e500v2-fp ${ppc_fp_compat} t-softfp t-hardfp"
fd1eaa27 1136 ;;
1137 *)
1138 echo "Unknown ppc_fp_type $ppc_fp_type" 1>&2
1139 exit 1
1140 ;;
1141 esac
d99eec2c 1142
1143 if test $libgcc_cv_powerpc_float128 = yes; then
1144 tmake_file="${tmake_file} rs6000/t-float128"
1145 fi
1146
1147 if test $libgcc_cv_powerpc_float128_hw = yes; then
1148 tmake_file="${tmake_file} rs6000/t-float128-hw"
1149 fi
1150
237490bf 1151 extra_parts="$extra_parts ecrti.o ecrtn.o ncrti.o ncrtn.o"
1e53920f 1152 md_unwind_header=rs6000/linux-unwind.h
894a47b4 1153 ;;
061339f2 1154powerpc-wrs-vxworks*)
47ab8c10 1155 tmake_file="$tmake_file rs6000/t-ppccomm rs6000/t-savresfgpr t-fdpbit"
f8a195db 1156 extra_parts="$extra_parts crtbegin.o crtend.o"
894a47b4 1157 ;;
894a47b4 1158powerpc-*-lynxos*)
08417926 1159 tmake_file="$tmake_file rs6000/t-lynx t-fdpbit"
894a47b4 1160 ;;
894a47b4 1161powerpcle-*-elf*)
738c50b8 1162 tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
237490bf 1163 extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
894a47b4 1164 ;;
1165powerpcle-*-eabisim*)
738c50b8 1166 tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
237490bf 1167 extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
894a47b4 1168 ;;
1169powerpcle-*-eabi*)
738c50b8 1170 tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
237490bf 1171 extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
894a47b4 1172 ;;
36387fad 1173riscv*-*-linux*)
1174 tmake_file="${tmake_file} riscv/t-softfp${host_address} t-softfp riscv/t-elf riscv/t-elf${host_address}"
1175 extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o crtendS.o crtbeginT.o"
1176 md_unwind_header=riscv/linux-unwind.h
1177 ;;
7ea6a647 1178riscv*-*-freebsd*)
1179 tmake_file="${tmake_file} riscv/t-softfp${host_address} t-softfp riscv/t-elf riscv/t-elf${host_address}"
1180 extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o crtendS.o crtbeginT.o"
1181 ;;
36387fad 1182riscv*-*-*)
1183 tmake_file="${tmake_file} riscv/t-softfp${host_address} t-softfp riscv/t-elf riscv/t-elf${host_address}"
1184 extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o"
1185 ;;
894a47b4 1186rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
e59be7e3 1187 md_unwind_header=rs6000/aix-unwind.h
c1420b84 1188 tmake_file="t-fdpbit rs6000/t-ppc64-fp rs6000/t-slibgcc-aix rs6000/t-ibm-ldouble"
894a47b4 1189 ;;
1190rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
e59be7e3 1191 md_unwind_header=rs6000/aix-unwind.h
c1420b84 1192 tmake_file="t-fdpbit rs6000/t-ppc64-fp rs6000/t-slibgcc-aix rs6000/t-ibm-ldouble"
894a47b4 1193 ;;
1194rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*)
e59be7e3 1195 md_unwind_header=rs6000/aix-unwind.h
a8af2dd5 1196 tmake_file="t-fdpbit rs6000/t-ppc64-fp rs6000/t-slibgcc-aix rs6000/t-ibm-ldouble rs6000/t-aix-cxa"
552a60d3 1197 extra_parts="crtcxa.o crtcxa_s.o crtdbase.o"
894a47b4 1198 ;;
78e515f7 1199rl78-*-elf)
1200 tmake_file="$tm_file t-fdpbit rl78/t-rl78"
1201 ;;
24833e1a 1202rx-*-elf)
a23b9c51 1203 tmake_file="rx/t-rx t-fdpbit"
022a2799 1204 tm_file="$tm_file rx/rx-abi.h rx/rx-lib.h"
24833e1a 1205 ;;
894a47b4 1206s390-*-linux*)
c6d481f7 1207 tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux s390/32/t-floattodi t-stack s390/t-stack-s390"
1e53920f 1208 md_unwind_header=s390/linux-unwind.h
894a47b4 1209 ;;
1210s390x-*-linux*)
c6d481f7 1211 tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux t-stack s390/t-stack-s390"
368b5b2c 1212 if test "${host_address}" = 32; then
1213 tmake_file="${tmake_file} s390/32/t-floattodi"
1214 fi
1e53920f 1215 md_unwind_header=s390/linux-unwind.h
894a47b4 1216 ;;
1217s390x-ibm-tpf*)
4dc4ff49 1218 tmake_file="${tmake_file} s390/t-crtstuff t-libgcc-pic t-eh-dw2-dip"
237490bf 1219 extra_parts="crtbeginS.o crtendS.o"
f9cccfac 1220 md_unwind_header=s390/tpf-unwind.h
894a47b4 1221 ;;
237490bf 1222sh-*-elf* | sh[12346l]*-*-elf*)
1223 tmake_file="$tmake_file sh/t-sh t-crtstuff-pic t-fdpbit"
1224 extra_parts="$extra_parts crt1.o crti.o crtn.o crtbeginS.o crtendS.o \
1225 libic_invalidate_array_4-100.a \
1226 libic_invalidate_array_4-200.a \
1227 libic_invalidate_array_4a.a \
1228 libgcc-Os-4-200.a libgcc-4-300.a"
97f1a704 1229 case ${host} in
237490bf 1230 sh*-superh-elf)
1231 tmake_file="$tmake_file sh/t-superh"
1232 extra_parts="$extra_parts crt1-mmu.o gcrt1-mmu.o gcrt1.o"
1233 ;;
1234 esac
1235 ;;
1236sh-*-linux* | sh[2346lbe]*-*-linux*)
9213d2eb 1237 tmake_file="${tmake_file} sh/t-sh t-slibgcc-libgcc sh/t-linux t-fdpbit"
237490bf 1238 md_unwind_header=sh/linux-unwind.h
1239 ;;
9a9b5abf 1240sh-*-netbsdelf* | shl*-*-netbsdelf*)
9213d2eb 1241 tmake_file="$tmake_file sh/t-sh sh/t-netbsd"
9a9b5abf 1242
237490bf 1243 # NetBSD's C library includes a fast software FP library that
1244 # has support for setting/setting the rounding mode, exception
1245 # mask, etc. Therefore, we don't want to include software FP
1246 # in libgcc.
894a47b4 1247 ;;
894a47b4 1248sh-*-rtems*)
9213d2eb 1249 tmake_file="$tmake_file sh/t-sh t-crtstuff-pic t-fdpbit"
237490bf 1250 extra_parts="$extra_parts crt1.o crti.o crtn.o crtbeginS.o crtendS.o \
57380e33 1251 libic_invalidate_array_4-100.a \
1252 libic_invalidate_array_4-200.a \
1253 libic_invalidate_array_4a.a \
1254 libgcc-Os-4-200.a libgcc-4-300.a"
894a47b4 1255 ;;
1256sh-wrs-vxworks)
9213d2eb 1257 tmake_file="$tmake_file sh/t-sh t-crtstuff-pic t-fdpbit"
894a47b4 1258 ;;
894a47b4 1259sparc-*-netbsdelf*)
1260 ;;
1261sparc64-*-openbsd*)
1262 ;;
1263sparc-*-elf*)
63abf89e 1264 case ${host} in
1265 *-leon[3-9]*)
1266 ;;
1267 *)
1268 tmake_file="sparc/t-softmul"
1269 ;;
1270 esac
237490bf 1271 tmake_file="${tmake_file} t-fdpbit t-crtfm"
1272 extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
894a47b4 1273 ;;
1274sparc-*-linux*) # SPARC's running GNU/Linux, libc6
95de80bc 1275 tmake_file="${tmake_file} t-crtfm"
1276 if test "${host_address}" = 64; then
1277 tmake_file="$tmake_file sparc/t-linux64"
1278 fi
a23b9c51 1279 case ${host} in
1280 *-leon*)
a997b0d8 1281 tmake_file="${tmake_file} t-fdpbit"
1282 ;;
1283 *)
1284 tmake_file="${tmake_file} sparc/t-linux"
a23b9c51 1285 ;;
1286 esac
9213d2eb 1287 case ${host} in
1288 *-leon[3-9]*)
1289 ;;
1290 *)
95de80bc 1291 if test "${host_address}" = 32; then
1292 tmake_file="$tmake_file sparc/t-softmul"
1293 fi
9213d2eb 1294 ;;
1295 esac
894a47b4 1296 extra_parts="$extra_parts crtfastmath.o"
f9cccfac 1297 md_unwind_header=sparc/linux-unwind.h
894a47b4 1298 ;;
a23b9c51 1299sparc-*-rtems*)
fbb6f195 1300 tmake_file="$tmake_file sparc/t-elf sparc/t-softmul t-crtfm t-fdpbit"
237490bf 1301 extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
894a47b4 1302 ;;
63abf89e 1303sparc*-*-solaris2*)
1304 tmake_file="$tmake_file t-crtfm"
1305 extra_parts="$extra_parts crtfastmath.o"
1e53920f 1306 md_unwind_header=sparc/sol2-unwind.h
894a47b4 1307 ;;
894a47b4 1308sparc64-*-elf*)
237490bf 1309 tmake_file="${tmake_file} t-crtfm"
1310 extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
894a47b4 1311 ;;
a23b9c51 1312sparc64-*-rtems*)
00b706f9 1313 tmake_file="$tmake_file t-crtfm"
237490bf 1314 extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
a23b9c51 1315 ;;
723e1902 1316sparc-wrs-vxworks)
1317 ;;
894a47b4 1318sparc64-*-freebsd*|ultrasparc-*-freebsd*)
1125ba83 1319 tmake_file="$tmake_file t-crtfm"
237490bf 1320 extra_parts="$extra_parts crtfastmath.o"
894a47b4 1321 ;;
1322sparc64-*-linux*) # 64-bit SPARC's running GNU/Linux
1323 extra_parts="$extra_parts crtfastmath.o"
95de80bc 1324 tmake_file="${tmake_file} t-crtfm sparc/t-linux"
1325 if test "${host_address}" = 64; then
1326 tmake_file="${tmake_file} sparc/t-linux64"
1327 fi
1328 if test "${host_address}" = 32; then
1329 tmake_file="${tmake_file} sparc/t-softmul"
1330 fi
1e53920f 1331 md_unwind_header=sparc/linux-unwind.h
894a47b4 1332 ;;
1333sparc64-*-netbsd*)
1334 ;;
1335spu-*-elf*)
4dc4ff49 1336 tmake_file="$tmake_file spu/t-elf t-libgcc-pic t-fdpbit"
237490bf 1337 extra_parts="$extra_parts \
1338 libgcc_cachemgr.a libgcc_cachemgr_nonatomic.a \
1339 libgcc_cache8k.a libgcc_cache16k.a libgcc_cache32k.a \
1340 libgcc_cache64k.a libgcc_cache128k.a"
894a47b4 1341 ;;
a997b0d8 1342tic6x-*-uclinux)
adce431d 1343 tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl t-softfp \
1344 c6x/t-elf c6x/t-uclinux t-crtstuff-pic t-libgcc-pic \
1345 t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-gnu-prefix"
022a2799 1346 tm_file="$tm_file c6x/c6x-abi.h"
adce431d 1347 extra_parts="$extra_parts crtbeginS.o crtendS.o crti.o crtn.o"
a997b0d8 1348 unwind_header=config/c6x/unwind-c6x.h
1349 ;;
237490bf 1350tic6x-*-elf)
1351 tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl t-softfp t-gnu-prefix c6x/t-elf"
022a2799 1352 tm_file="$tm_file c6x/c6x-abi.h"
237490bf 1353 extra_parts="$extra_parts crtbeginS.o crtendS.o crti.o crtn.o"
7e5fc0c4 1354 unwind_header=config/c6x/unwind-c6x.h
5aa04b01 1355 ;;
2da35515 1356tilegx*-*-linux*)
d58f7073 1357 if test "${host_address}" = 64; then
1358 tmake_file="${tmake_file} tilegx/t-softfp"
1359 fi
1360 tmake_file="${tmake_file} tilegx/t-crtstuff t-softfp-sfdf t-softfp tilegx/t-tilegx"
7ce78e23 1361 md_unwind_header=tilepro/linux-unwind.h
1362 ;;
2da35515 1363tilepro*-*-linux*)
6bf644d1 1364 tmake_file="${tmake_file} tilepro/t-crtstuff t-softfp-sfdf t-softfp tilepro/t-tilepro t-slibgcc-libgcc"
7ce78e23 1365 md_unwind_header=tilepro/linux-unwind.h
1366 ;;
707238af 1367v850*-*-*)
0cdefccf 1368 tmake_file="${tmake_file} v850/t-v850 t-fdpbit"
894a47b4 1369 ;;
63bfd172 1370vax-*-linux*)
9213d2eb 1371 tmake_file="$tmake_file vax/t-linux"
63bfd172 1372 ;;
894a47b4 1373vax-*-netbsdelf*)
1374 ;;
894a47b4 1375vax-*-openbsd*)
1376 ;;
8992df51 1377visium-*-elf*)
1378 extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o"
1379 tmake_file="visium/t-visium t-fdpbit"
1380 ;;
894a47b4 1381xstormy16-*-elf)
2219274c 1382 tmake_file="stormy16/t-stormy16 t-fdpbit"
894a47b4 1383 ;;
75c7ffbc 1384xtensa*-*-elf*)
237490bf 1385 tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-elf"
1386 extra_parts="$extra_parts crti.o crtn.o"
894a47b4 1387 ;;
75c7ffbc 1388xtensa*-*-linux*)
382e1a72 1389 tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-linux t-slibgcc-libgcc"
1e53920f 1390 md_unwind_header=xtensa/linux-unwind.h
894a47b4 1391 ;;
e3c15dbe 1392xtensa*-*-uclinux*)
1393 tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-linux t-slibgcc-libgcc"
1394 md_unwind_header=xtensa/linux-unwind.h
1395 extra_parts="$extra_parts crtbeginS.o crtbeginT.o crtendS.o"
1396 ;;
894a47b4 1397am33_2.0-*-linux*)
237490bf 1398 # Don't need crtbeginT.o from *-*-linux* default.
894a47b4 1399 extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
a997b0d8 1400 tmake_file="$tmake_file t-fdpbit"
894a47b4 1401 ;;
7eac0a4e 1402m32c-*-elf*|m32c-*-rtems*)
9213d2eb 1403 tmake_file="$tmake_file m32c/t-m32c"
894a47b4 1404 ;;
8ce80784 1405nvptx-*)
1406 tmake_file="$tmake_file nvptx/t-nvptx"
1407 extra_parts="crt0.o"
1408 ;;
894a47b4 1409*)
1410 echo "*** Configuration ${host} not supported" 1>&2
1411 exit 1
1412 ;;
1413esac
e4cbe54f 1414
98c9b52b 1415case ${host} in
1416i[34567]86-*-* | x86_64-*-*)
6e6c7fc1 1417 case ${host} in
1418 *-musl*)
1419 tmake_file="${tmake_file} i386/t-cpuinfo-static"
1420 ;;
1421 *)
1422 tmake_file="${tmake_file} i386/t-cpuinfo"
1423 ;;
1424 esac
98c9b52b 1425 ;;
1426esac
1427
e4cbe54f 1428case ${host} in
1eab96a6 1429i[34567]86-*-linux* | x86_64-*-linux* | \
a997b0d8 1430 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \
1eab96a6 1431 i[34567]86-*-gnu*)
e67d3d38 1432 tmake_file="${tmake_file} t-tls i386/t-linux i386/t-msabi t-slibgcc-libgcc"
c9b3ebc5 1433 if test "$libgcc_cv_cfi" = "yes"; then
f2d9def0 1434 tmake_file="${tmake_file} t-stack i386/t-stack-i386"
c9b3ebc5 1435 fi
e4cbe54f 1436 ;;
1437esac
b3fd46a0 1438
1439case ${host} in
ac34f4bd 1440i[34567]86-*-elfiamcu | i[34567]86-*-rtems*)
1441 # These use soft-fp for SFmode and DFmode, not just TFmode.
1442 ;;
1443i[34567]86-*-* | x86_64-*-*)
84600db5 1444 tmake_file="${tmake_file} t-softfp-tf"
48cdc7d7 1445 if test "${host_address}" = 32; then
1446 tmake_file="${tmake_file} i386/${host_address}/t-softfp"
1447 fi
2c223cf2 1448 tmake_file="${tmake_file} i386/t-softfp t-softfp"
144633f4 1449 ;;
1450esac
1451
1452case ${host} in
1453i[34567]86-*-linux* | x86_64-*-linux*)
1454 # Provide backward binary compatibility for 64bit Linux/x86.
1455 if test "${host_address}" = 64; then
1456 tmake_file="${tmake_file} i386/${host_address}/t-softfp-compat"
1457 fi
022a2799 1458 tm_file="${tm_file} i386/value-unwind.h"
b3fd46a0 1459 ;;
9c0ca8b6 1460aarch64*-*-*)
1461 # ILP32 needs an extra header for unwinding
1462 tm_file="${tm_file} aarch64/value-unwind.h"
1463 ;;
b3fd46a0 1464esac