1# libgcc host-specific configuration file.
2# Copyright (C) 1997-2021 Free Software Foundation, Inc.
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
8#Software Foundation; either version 3, or (at your option) any later
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
17#along with GCC; see the file COPYING3.  If not see
18#<http://www.gnu.org/licenses/>.
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.
46#  enable_execute_stack The name of a source file implementing
47#			__enable_execute_stack.
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.
54#  md_unwind_header	The name of a header file defining
55#			MD_FALLBACK_FRAME_STATE_FOR.
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.
59#  tmake_file		A list of machine-description-specific
60#			makefile fragments.
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.
66#  unwind_header	The name of the header file declaring the unwind
67#			runtime interface routines.
68
69asm_hidden_op=.hidden
70enable_execute_stack=
71extra_parts=
72tmake_file=
73tm_file=
74tm_define=
75md_unwind_header=no-unwind.h
76unwind_header=unwind-generic.h
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
83	tmake_file=t-fdpbit
84        ;;
85aarch64*-*-*)
86	cpu_type=aarch64
87	;;
88alpha*-*-*)
89	cpu_type=alpha
90	;;
91am33_2.0-*-linux*)
92	cpu_type=mn10300
93	;;
94amdgcn*-*-*)
95	cpu_type=gcn
96	tmake_file="${tmake_file} t-softfp-sfdf t-softfp"
97	;;
98arc*-*-*)
99	cpu_type=arc
100	;;
101arm*-*-*)
102	cpu_type=arm
103	;;
104avr-*-*)
105	cpu_type=avr
106	;;
107bfin*-*)
108	cpu_type=bfin
109	;;
110bpf-*-*)
111        cpu_type=bpf
112        ;;
113cr16-*-*)
114	;;
115csky*-*-*)
116	cpu_type=csky
117	;;
118fido-*-*)
119	cpu_type=m68k
120	;;
121frv*)	cpu_type=frv
122	;;
123ft32*)	cpu_type=ft32
124	;;
125moxie*)	cpu_type=moxie
126	;;
127i[34567]86-*-*)
128	cpu_type=i386
129	;;
130x86_64-*-*)
131	cpu_type=i386
132	;;
133ia64-*-*)
134	;;
135hppa*-*-*)
136	cpu_type=pa
137	;;
138lm32*-*-*)
139	cpu_type=lm32
140	;;
141m32r*-*-*)
142        cpu_type=m32r
143        ;;
144m68k-*-*)
145	;;
146microblaze*-*-*)
147	cpu_type=microblaze
148	;;
149mips*-*-*)
150	# All MIPS targets provide a full set of FP routines.
151	cpu_type=mips
152	tmake_file="mips/t-mips"
153	if test "${libgcc_cv_mips_hard_float}" = yes; then
154		tmake_file="${tmake_file} t-hardfp-sfdf t-hardfp"
155	else
156		tmake_file="${tmake_file} t-softfp-sfdf"
157	fi
158	if test "${ac_cv_sizeof_long_double}" = 16; then
159		tmake_file="${tmake_file} mips/t-softfp-tf"
160	fi
161	if test "${host_address}" = 64; then
162		tmake_file="${tmake_file} mips/t-mips64"
163	fi
164	tmake_file="${tmake_file} t-softfp"
165	;;
166nds32*-*)
167	cpu_type=nds32
168	;;
169nios2*-*-*)
170	cpu_type=nios2
171	;;
172or1k*-*-*)
173	cpu_type=or1k
174	;;
175powerpc*-*-*)
176	cpu_type=rs6000
177	;;
178pru-*-*)
179	cpu_type=pru
180	;;
181rs6000*-*-*)
182	;;
183riscv*-*-*)
184	cpu_type=riscv
185	;;
186sparc64*-*-*)
187	cpu_type=sparc
188	;;
189sparc*-*-*)
190	cpu_type=sparc
191	;;
192s390*-*-*)
193	cpu_type=s390
194	;;
195# Note the 'l'; we need to be able to match e.g. "shle" or "shl".
196sh[123456789lbe]*-*-*)
197	cpu_type=sh
198	;;
199tilegx*-*-*)
200	cpu_type=tilegx
201	;;
202tilepro*-*-*)
203	cpu_type=tilepro
204	;;
205v850*-*-*)
206	cpu_type=v850
207	;;
208tic6x-*-*)
209	cpu_type=c6x
210	;;
211esac
212
213# Common parts for widely ported systems.
214case ${host} in
215*-*-darwin*)
216  asm_hidden_op=.private_extern
217  tmake_file="$tmake_file t-darwin ${cpu_type}/t-darwin t-libgcc-pic t-slibgcc-darwin"
218  extra_parts="crt3.o d10-uwfef.o crttms.o crttme.o"
219  ;;
220*-*-dragonfly*)
221  tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip"
222  tmake_file="$tmake_file t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver"
223  extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
224  ;;
225*-*-freebsd*)
226  # This is the generic ELF configuration of FreeBSD.  Later
227  # machine-specific sections may refine and add to this
228  # configuration.
229  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"
230  extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
231  case ${target_thread_file} in
232    posix)
233      tmake_file="${tmake_file} t-freebsd-thread"
234      # Before 5.0, FreeBSD can't bind shared libraries to -lc
235      # when "optionally" threaded via weak pthread_* checks.
236      case ${host} in
237        *-*-freebsd[34] | *-*-freebsd[34].*)
238          tmake_file="${tmake_file} t-slibgcc-nolc-override"
239          ;;
240      esac
241      ;;
242  esac
243  ;;
244*-*-fuchsia*)
245  tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-fuchsia"
246  extra_parts="crtbegin.o crtend.o"
247  ;;
248*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)
249  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"
250  extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
251  if test x$enable_vtable_verify = xyes; then
252    extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o"
253  fi
254  ;;
255*-*-lynxos*)
256  tmake_file="$tmake_file t-lynx $cpu_type/t-crtstuff t-crtstuff-pic t-libgcc-pic"
257  extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
258  ;;
259*-*-netbsd*)
260  tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip"
261  tmake_file="$tmake_file t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver"
262  tmake_file="$tmake_file t-slibgcc-libgcc"
263  extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o"
264  ;;
265*-*-openbsd*)
266  tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip"
267  case ${target_thread_file} in
268    posix)
269      tmake_file="$tmake_file t-openbsd-thread"
270      ;;
271  esac
272  ;;
273*-*-rtems*)
274  tmake_file="$tmake_file t-rtems"
275  extra_parts="crtbegin.o crtend.o"
276  ;;
277*-*-solaris2*)
278  # Unless linker support and dl_iterate_phdr are present,
279  # unwind-dw2-fde-dip.c automatically falls back to unwind-dw2-fde.c.
280  tmake_file="$tmake_file sol2/t-sol2 t-eh-dw2-dip t-crtstuff-pic t-libgcc-pic t-slibgcc t-slibgcc-elf-ver"
281  if test $with_gnu_ld = yes; then
282    tmake_file="$tmake_file t-slibgcc-gld"
283  else
284    tmake_file="$tmake_file t-slibgcc-sld"
285  fi
286  # Add cpu-specific t-sol2 after t-slibgcc-* so it can augment SHLIB_MAPFILES.
287  tmake_file="$tmake_file $cpu_type/t-sol2"
288  extra_parts="gmon.o crtbegin.o crtend.o"
289  if test "${libgcc_cv_solaris_crts}" = yes; then
290    # Solaris 11.4 provides crt1.o, crti.o, and crtn.o as part of the
291    # base system.  crtp.o and crtpg.o implement the compiler-dependent parts.
292    extra_parts="$extra_parts crtp.o crtpg.o"
293    # If the Solaris CRTs are present, both ld and gld will have PIE support.
294    extra_parts="$extra_parts crtbeginS.o crtendS.o"
295  else
296    case ${host} in
297      i?86-*-solaris2* | x86_64-*-solaris2*)
298        # Solaris 10+/x86 provides crt1.o, crti.o, crtn.o, and gcrt1.o as
299        # part of the base system.
300        ;;
301      sparc*-*-solaris2*)
302        # Solaris 10+/SPARC lacks crt1.o and gcrt1.o.
303        extra_parts="$extra_parts crt1.o gcrt1.o"
304        ;;
305    esac
306  fi
307  if test x$enable_vtable_verify = xyes; then
308    extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o"
309  fi
310  ;;
311*-*-uclinux*)
312  extra_parts="crtbegin.o crtend.o"
313  ;;
314*-*-*vms*)
315  tmake_file="vms/t-vms"
316  extra_parts="crt0.o crtbegin.o crtbeginS.o crtend.o crtendS.o"
317  ;;
318*-*-vxworks7*)
319  tmake_file=t-vxworks7
320  ;;
321*-*-vxworksae*)
322  tmake_file=t-vxworksae
323  ;;
324*-*-vxworks*)
325  tmake_file=t-vxworks
326  ;;
327*-*-elf)
328  extra_parts="crtbegin.o crtend.o"
329  ;;
330esac
331
332# Except on ARM where we do not use DWARF, table based EH on VxWorks
333# relies on specially crafted crtstuff files
334case ${host} in
335arm-*-vxworks*)
336  ;;
337*-*-vxworks*)
338  tmake_file="${tmake_file} t-vxcrtstuff"
339  ;;
340esac
341
342case ${host} in
343*-*-darwin* | *-*-dragonfly* | *-*-freebsd* | *-*-netbsd* | *-*-openbsd* | \
344  *-*-solaris2*)
345  enable_execute_stack=enable-execute-stack-mprotect.c
346  ;;
347i[34567]86-*-mingw* | x86_64-*-mingw*)
348  enable_execute_stack=config/i386/enable-execute-stack-mingw32.c
349  ;;
350i[34567]86-*-cygwin* | x86_64-*-cygwin*)
351  enable_execute_stack=config/i386/enable-execute-stack-mingw32.c
352  ;;
353*)
354  enable_execute_stack=enable-execute-stack-empty.c;
355  ;;
356esac
357
358case ${host} in
359aarch64*-*-elf | aarch64*-*-rtems*)
360	extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o"
361	extra_parts="$extra_parts crtfastmath.o"
362	tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
363	tmake_file="${tmake_file} ${cpu_type}/t-lse t-slibgcc-libgcc"
364	tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
365	md_unwind_header=aarch64/aarch64-unwind.h
366	;;
367aarch64*-*-freebsd*)
368	extra_parts="$extra_parts crtfastmath.o"
369	tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
370	tmake_file="${tmake_file} ${cpu_type}/t-lse t-slibgcc-libgcc"
371	tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
372	md_unwind_header=aarch64/freebsd-unwind.h
373	;;
374aarch64*-*-netbsd*)
375	extra_parts="$extra_parts crtfastmath.o"
376	tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
377	tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
378	md_unwind_header=aarch64/aarch64-unwind.h
379	;;
380aarch64*-*-fuchsia*)
381	tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
382	tmake_file="${tmake_file} ${cpu_type}/t-lse t-slibgcc-libgcc"
383	tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp"
384	;;
385aarch64*-*-linux*)
386	extra_parts="$extra_parts crtfastmath.o"
387	md_unwind_header=aarch64/linux-unwind.h
388	tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
389	tmake_file="${tmake_file} ${cpu_type}/t-lse t-slibgcc-libgcc"
390	tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
391	;;
392aarch64*-*-vxworks7*)
393	extra_parts="$extra_parts crtfastmath.o"
394	md_unwind_header=aarch64/aarch64-unwind.h
395	tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
396	tmake_file="${tmake_file} ${cpu_type}/t-lse t-slibgcc-libgcc"
397	tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
398	;;
399alpha*-*-linux*)
400	tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee t-crtfm alpha/t-linux"
401	extra_parts="$extra_parts crtfastmath.o"
402	md_unwind_header=alpha/linux-unwind.h
403	;;
404alpha*-*-freebsd*)
405	tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee t-crtfm"
406	extra_parts="$extra_parts crtbeginT.o crtfastmath.o"
407	;;
408alpha*-*-netbsd*)
409	tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee"
410	;;
411alpha*-*-openbsd*)
412	tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee"
413	;;
414alpha64-dec-*vms*)
415	tmake_file="$tmake_file alpha/t-alpha alpha/t-ieee alpha/t-vms t-slibgcc-vms"
416	extra_parts="$extra_parts vms-dwarf2.o vms-dwarf2eh.o"
417	md_unwind_header=alpha/vms-unwind.h
418	;;
419alpha*-dec-*vms*)
420	tmake_file="$tmake_file alpha/t-alpha alpha/t-ieee alpha/t-vms t-slibgcc-vms"
421	extra_parts="$extra_parts vms-dwarf2.o vms-dwarf2eh.o"
422	md_unwind_header=alpha/vms-unwind.h
423	;;
424amdgcn*-*-amdhsa)
425	tmake_file="$tmake_file gcn/t-amdgcn"
426	extra_parts="crt0.o"
427	;;
428arc*-*-elf*)
429	tmake_file="arc/t-arc"
430	extra_parts="crti.o crtn.o crtend.o crtbegin.o crtendS.o crtbeginS.o"
431	extra_parts="$extra_parts crttls.o"
432	;;
433arc*-*-linux*)
434	tmake_file="${tmake_file} t-slibgcc-libgcc t-slibgcc-nolc-override arc/t-arc-uClibc arc/t-arc"
435	extra_parts="$extra_parts crti.o crtn.o"
436	extra_parts="$extra_parts crttls.o"
437	md_unwind_header=arc/linux-unwind.h
438	;;
439arm-wrs-vxworks7*)
440	tmake_file="$tmake_file arm/t-arm arm/t-elf arm/t-bpabi arm/t-vxworks7"
441        tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
442	tm_file="$tm_file arm/bpabi-lib.h"
443	unwind_header=config/arm/unwind-arm.h
444	extra_parts="$extra_parts crti.o crtn.o"
445	;;
446arm*-*-freebsd*)                # ARM FreeBSD EABI
447	tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix arm/t-elf"
448	tmake_file="${tmake_file} arm/t-bpabi arm/t-freebsd"
449	tm_file="${tm_file} arm/bpabi-lib.h"
450	unwind_header=config/arm/unwind-arm.h
451	tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
452	;;
453arm*-*-fuchsia*)
454	tmake_file="${tmake_file} arm/t-arm arm/t-elf arm/t-bpabi"
455	tmake_file="${tmake_file} arm/tsoftfp t-softfp"
456	tm_file="${tm_file} arm/bpabi-lib.h"
457	unwind_header=config/arm/unwind-arm.h
458	;;
459arm*-*-netbsdelf*)
460	tmake_file="$tmake_file arm/t-arm"
461	case ${host} in
462	  arm*-*-netbsdelf-*eabi*)
463	    tmake_file="${tmake_file} arm/t-netbsd-eabi"
464	    unwind_header=config/arm/unwind-arm.h
465	    ;;
466	  *)
467	    tmake_file="${tmake_file} arm/t-netbsd t-slibgcc-gld-nover"
468	    ;;
469	esac
470	;;
471arm*-*-linux* | arm*-*-uclinuxfdpiceabi)
472	tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix t-crtfm"
473	tmake_file="${tmake_file} arm/t-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc"
474	tm_file="$tm_file arm/bpabi-lib.h"
475	unwind_header=config/arm/unwind-arm.h
476	tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
477	extra_parts="$extra_parts crtfastmath.o"
478	;;
479arm*-*-uclinux*)		# ARM ucLinux
480	tmake_file="${tmake_file} t-fixedpoint-gnu-prefix t-crtfm"
481	tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
482	tmake_file="${tmake_file} arm/t-bpabi"
483	tm_file="$tm_file arm/bpabi-lib.h"
484	unwind_header=config/arm/unwind-arm.h
485	extra_parts="$extra_parts crti.o crtn.o"
486	;;
487arm*-*-phoenix*)
488	tmake_file="t-hardfp t-softfp arm/t-arm arm/t-elf arm/t-softfp arm/t-phoenix"
489	tmake_file="${tmake_file} arm/t-bpabi"
490	tm_file="$tm_file arm/bpabi-lib.h"
491	extra_parts="crtbegin.o crtend.o crti.o crtn.o"
492	unwind_header=config/arm/unwind-arm.h
493	;;
494arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
495	tmake_file="${tmake_file} arm/t-arm arm/t-elf t-fixedpoint-gnu-prefix"
496	tm_file="$tm_file arm/bpabi-lib.h"
497	case ${host} in
498	arm*-*-eabi* | arm*-*-rtems*)
499	  tmake_file="${tmake_file} arm/t-bpabi t-crtfm"
500	  extra_parts="crtbegin.o crtend.o crti.o crtn.o"
501	  ;;
502	arm*-*-symbianelf*)
503	  tmake_file="${tmake_file} arm/t-symbian t-slibgcc-nolc-override"
504	  tm_file="$tm_file arm/symbian-lib.h"
505	  # Symbian OS provides its own startup code.
506	  ;;
507	esac
508	tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
509	extra_parts="$extra_parts crtfastmath.o"
510	unwind_header=config/arm/unwind-arm.h
511	;;
512avr-*-*)
513	# Make HImode functions for AVR
514	tmake_file="${cpu_type}/t-avr t-fpbit"
515	# Make some DFmode functions from libf7, part of avr-libgcc.
516	# This must be prior to adding t-avrlibc.
517	case "y${with_libf7}" in
518	    yno)
519	        # No libf7 support.
520	        ;;
521	    ylibgcc)
522		tmake_file="$tmake_file ${cpu_type}/libf7/t-libf7"
523		;;
524	    ymath)
525		tmake_file="$tmake_file ${cpu_type}/libf7/t-libf7-math"
526		tmake_file="$tmake_file ${cpu_type}/libf7/t-libf7"
527		;;
528	    ymath-symbols | yyes | y)
529		tmake_file="$tmake_file ${cpu_type}/libf7/t-libf7-math-symbols"
530		tmake_file="$tmake_file ${cpu_type}/libf7/t-libf7-math"
531		tmake_file="$tmake_file ${cpu_type}/libf7/t-libf7"
532		;;
533	    *)
534		echo "Error: --with-libf7=${with_libf7} but can only be used with: 'libgcc', 'math', 'math-symbols', 'yes', 'no'" 1>&2
535		exit 1
536		;;
537	esac
538	if test x${with_avrlibc} != xno; then
539	    tmake_file="$tmake_file ${cpu_type}/t-avrlibc"
540	fi
541	tm_file="$tm_file avr/avr-lib.h"
542	if test x${with_fixed_point} = xno; then
543	    fixed_point=no
544	fi
545	;;
546bfin*-elf*)
547	tmake_file="bfin/t-bfin bfin/t-crtlibid bfin/t-crtstuff t-libgcc-pic t-fdpbit"
548	extra_parts="$extra_parts crtbeginS.o crtendS.o crti.o crtn.o crtlibid.o"
549        ;;
550bfin*-uclinux*)
551	tmake_file="bfin/t-bfin bfin/t-crtlibid bfin/t-crtstuff t-libgcc-pic t-fdpbit"
552	extra_parts="$extra_parts crtbeginS.o crtendS.o crtlibid.o"
553	md_unwind_header=bfin/linux-unwind.h
554        ;;
555bfin*-linux-uclibc*)
556	tmake_file="$tmake_file bfin/t-bfin bfin/t-crtstuff t-libgcc-pic t-fdpbit bfin/t-linux"
557	# No need to build crtbeginT.o on uClibc systems.  Should probably
558	# be moved to the OS specific section above.
559	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
560	md_unwind_header=bfin/linux-unwind.h
561	;;
562bfin*-rtems*)
563	tmake_file="$tmake_file bfin/t-bfin t-fdpbit"
564	extra_parts="$extra_parts crti.o crtn.o"
565	;;
566bfin*-*)
567	tmake_file="$tmake_file bfin/t-bfin t-fdpbit"
568	extra_parts="crtbegin.o crtend.o crti.o crtn.o"
569        ;;
570bpf-*-*)
571        tmake_file="$tmake_file ${cpu_type}/t-${cpu_type}"
572        extra_parts="crti.o crtn.o"
573	;;
574cr16-*-elf)
575	tmake_file="${tmake_file} cr16/t-cr16 cr16/t-crtlibid t-fdpbit"
576	extra_parts="$extra_parts crti.o crtn.o crtlibid.o"
577        ;;
578cris-*-elf)
579	tmake_file="$tmake_file cris/t-cris t-softfp-sfdf t-softfp cris/t-elfmulti"
580	;;
581csky-*-elf*)
582	tmake_file="csky/t-csky t-fdpbit"
583	extra_parts="crtbegin.o crtend.o crti.o crtn.o"
584	;;
585csky-*-linux*)
586	tmake_file="$tmake_file csky/t-csky t-slibgcc-libgcc t-fdpbit csky/t-linux-csky"
587	extra_parts="$extra_parts crti.o crtn.o"
588	md_unwind_header=csky/linux-unwind.h
589	;;
590epiphany-*-elf* | epiphany-*-rtems*)
591	tmake_file="$tmake_file epiphany/t-epiphany t-fdpbit epiphany/t-custom-eqsf"
592	extra_parts="$extra_parts crti.o crtint.o crtrunc.o crtm1reg-r43.o crtm1reg-r63.o crtn.o"
593	;;
594fr30-*-elf)
595	tmake_file="$tmake_file fr30/t-fr30 t-fdpbit"
596	extra_parts="$extra_parts crti.o crtn.o"
597	;;
598frv-*-elf)
599	tmake_file="$tmake_file frv/t-frv t-fdpbit"
600	tm_file="$tm_file frv/elf-lib.h frv/frv-abi.h"
601	# Don't use crtbegin.o, crtend.o.
602	extra_parts="frvbegin.o frvend.o"
603	;;
604frv-*-*linux*)
605	tmake_file="$tmake_file frv/t-frv frv/t-linux t-fdpbit"
606	tm_file="$tm_file frv/elf-lib.h frv/frv-abi.h"
607	;;
608ft32-*-elf)
609	tmake_file="ft32/t-ft32 t-softfp-sfdf t-softfp-excl t-softfp"
610	extra_parts="$extra_parts crti.o crti-hw.o crtn.o"
611	;;
612h8300-*-elf*)
613	tmake_file="$tmake_file h8300/t-h8300 t-fpbit"
614	tm_file="$tm_file h8300/h8300-lib.h"
615	extra_parts="$extra_parts crti.o crtn.o"
616	;;
617h8300-*-linux*)
618	tmake_file="t-linux h8300/t-linux t-softfp-sfdf t-softfp"
619	tm_file="$tm_file h8300/h8300-lib.h"
620	;;
621hppa*64*-*-linux*)
622	tmake_file="$tmake_file pa/t-linux pa/t-linux64"
623	extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
624	;;
625hppa*-*-linux*)
626	tmake_file="$tmake_file pa/t-linux t-slibgcc-libgcc"
627	# Set the libgcc version number
628	if test x$ac_cv_sjlj_exceptions = xyes; then
629	    tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver"
630	else
631	    tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
632	fi
633	extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
634	md_unwind_header=pa/linux-unwind.h
635	;;
636hppa[12]*-*-hpux10*)
637	tmake_file="$tmake_file pa/t-hpux pa/t-hpux10 t-libgcc-pic t-slibgcc"
638	# Set the libgcc version number
639	if test x$ac_cv_sjlj_exceptions = xyes; then
640	    tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver"
641	else
642	    tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
643	fi
644	tmake_file="$tmake_file pa/t-slibgcc-hpux t-slibgcc-hpux"
645	md_unwind_header=pa/hpux-unwind.h
646	;;
647hppa*64*-*-hpux11*)
648	tmake_file="$tmake_file pa/t-hpux pa/t-pa64 pa/t-stublib t-libgcc-pic t-slibgcc"
649	# Set the libgcc version number
650	if test x$ac_cv_sjlj_exceptions = xyes; then
651	    tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver"
652	else
653	    tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
654	fi
655	tmake_file="$tmake_file pa/t-slibgcc-hpux t-slibgcc-hpux"
656	tm_file="$tm_file pa/pa64-hpux-lib.h"
657	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o \
658		     libgcc_stub.a"
659	md_unwind_header=pa/hpux-unwind.h
660	;;
661hppa[12]*-*-hpux11*)
662	tmake_file="$tmake_file pa/t-hpux pa/t-stublib t-libgcc-pic t-slibgcc"
663	# Set the libgcc version number
664	if test x$ac_cv_sjlj_exceptions = xyes; then
665	    tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver"
666	else
667	    tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
668	fi
669	tmake_file="$tmake_file pa/t-slibgcc-hpux t-slibgcc-hpux"
670	extra_parts="libgcc_stub.a"
671	md_unwind_header=pa/hpux-unwind.h
672	;;
673hppa*-*-openbsd*)
674	tmake_file="$tmake_file pa/t-openbsd"
675	;;
676hppa*-*-netbsd*)
677	tmake_file="$tmake_file pa/t-netbsd"
678	;;
679i[34567]86-*-darwin*)
680	tmake_file="$tmake_file i386/t-crtpc t-crtfm i386/t-msabi"
681	tm_file="$tm_file i386/darwin-lib.h"
682	extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
683	;;
684x86_64-*-darwin*)
685	tmake_file="$tmake_file i386/t-crtpc t-crtfm i386/t-msabi"
686	tm_file="$tm_file i386/darwin-lib.h"
687	extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
688	;;
689i[34567]86-*-elfiamcu)
690	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"
691	;;
692i[34567]86-*-elf*)
693	tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic"
694	;;
695x86_64-*-elf* | x86_64-*-rtems*)
696	tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic"
697	case ${host} in
698	  x86_64-*-rtems*)
699	    extra_parts="$extra_parts crti.o crtn.o"
700	    ;;
701	esac
702	;;
703x86_64-*-fuchsia*)
704	tmake_file="$tmake_file t-libgcc-pic"
705	;;
706i[34567]86-*-dragonfly*)
707	tmake_file="${tmake_file} i386/t-dragonfly i386/t-crtstuff"
708	md_unwind_header=i386/dragonfly-unwind.h
709	;;
710x86_64-*-dragonfly*)
711	tmake_file="${tmake_file} i386/t-dragonfly i386/t-crtstuff"
712	md_unwind_header=i386/dragonfly-unwind.h
713	;;
714i[34567]86-*-freebsd*)
715	tmake_file="${tmake_file} i386/t-freebsd i386/t-crtstuff"
716	md_unwind_header=i386/freebsd-unwind.h
717	;;
718x86_64-*-freebsd*)
719	tmake_file="${tmake_file} i386/t-freebsd i386/t-crtstuff"
720	md_unwind_header=i386/freebsd-unwind.h
721	;;
722i[34567]86-*-netbsdelf*)
723	tmake_file="${tmake_file} i386/t-crtstuff"
724	;;
725x86_64-*-netbsd*)
726	tmake_file="${tmake_file} i386/t-crtstuff"
727	;;
728i[34567]86-*-openbsd*)
729	;;
730x86_64-*-openbsd*)
731	;;
732i[34567]86-*-linux*)
733	extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
734	tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules"
735	tm_file="${tm_file} i386/elf-lib.h"
736	md_unwind_header=i386/linux-unwind.h
737	;;
738i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-kopensolaris*-gnu)
739	extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
740	tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules"
741	tm_file="${tm_file} i386/elf-lib.h"
742	;;
743i[34567]86-*-gnu*)
744	extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
745	tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules"
746	tm_file="${tm_file} i386/elf-lib.h"
747	md_unwind_header=i386/gnu-unwind.h
748	;;
749x86_64-*-linux*)
750	extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
751	tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules"
752	tm_file="${tm_file} i386/elf-lib.h"
753	md_unwind_header=i386/linux-unwind.h
754	;;
755x86_64-*-kfreebsd*-gnu)
756	extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
757	tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules"
758	tm_file="${tm_file} i386/elf-lib.h"
759	;;
760i[34567]86-pc-msdosdjgpp*)
761	;;
762i[34567]86-*-lynxos*)
763	;;
764i[34567]86-*-nto-qnx*)
765	tmake_file="$tmake_file i386/t-nto t-libgcc-pic"
766	extra_parts=crtbegin.o
767	;;
768i[34567]86-*-rtems*)
769	tmake_file="$tmake_file i386/t-crtstuff t-softfp-sfdftf i386/32/t-softfp i386/t-softfp t-softfp"
770	extra_parts="$extra_parts crti.o crtn.o"
771	;;
772i[34567]86-*-solaris2* | x86_64-*-solaris2*)
773	tmake_file="$tmake_file i386/t-crtpc t-crtfm i386/t-msabi"
774	extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
775	tm_file="${tm_file} i386/elf-lib.h"
776	md_unwind_header=i386/sol2-unwind.h
777	;;
778i[4567]86-wrs-vxworks*|x86_64-wrs-vxworks*)
779	;;
780i[34567]86-*-cygwin*)
781	extra_parts="crtbegin.o crtbeginS.o crtend.o crtfastmath.o"
782	if test x$enable_vtable_verify = xyes; then
783		extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o"
784	fi
785	# This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
786	if test x$ac_cv_sjlj_exceptions = xyes; then
787		tmake_eh_file="i386/t-sjlj-eh"
788	else
789		tmake_eh_file="i386/t-dw2-eh"
790	fi
791	# Shared libgcc DLL install dir depends on cross/native build.
792	if test x${build} = x${host} ; then
793		tmake_dlldir_file="i386/t-dlldir"
794	else
795		tmake_dlldir_file="i386/t-dlldir-x"
796	fi
797	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"
798	;;
799x86_64-*-cygwin*)
800	extra_parts="crtbegin.o crtbeginS.o crtend.o crtfastmath.o"
801	if test x$enable_vtable_verify = xyes; then
802		extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o"
803	fi
804	# This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
805	if test x$ac_cv_sjlj_exceptions = xyes; then
806		tmake_eh_file="i386/t-sjlj-eh"
807	elif test "${host_address}" = 32; then
808	        # biarch -m32 with --disable-sjlj-exceptions
809	     	tmake_eh_file="i386/t-dw2-eh"
810	else
811		tmake_eh_file="i386/t-seh-eh"
812	fi
813	# Shared libgcc DLL install dir depends on cross/native build.
814	if test x${build} = x${host} ; then
815		tmake_dlldir_file="i386/t-dlldir"
816	else
817		tmake_dlldir_file="i386/t-dlldir-x"
818	fi
819	# FIXME - dj - t-chkstk used to be in here, need a 64-bit version of that
820	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"
821	;;
822i[34567]86-*-mingw*)
823	extra_parts="crtbegin.o crtend.o crtfastmath.o"
824	if test x$enable_vtable_verify = xyes; then
825		extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o"
826	fi
827	case ${target_thread_file} in
828	  win32)
829	    tmake_file="$tmake_file i386/t-gthr-win32"
830	    ;;
831	  posix)
832	    tmake_file="i386/t-mingw-pthread $tmake_file"
833	    ;;
834	esac
835	# This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
836	if test x$ac_cv_sjlj_exceptions = xyes; then
837		tmake_eh_file="i386/t-sjlj-eh"
838	else
839		tmake_eh_file="i386/t-dw2-eh"
840		md_unwind_header=i386/w32-unwind.h
841	fi
842	# Shared libgcc DLL install dir depends on cross/native build.
843	if test x${build} = x${host} ; then
844		tmake_dlldir_file="i386/t-dlldir"
845	else
846		tmake_dlldir_file="i386/t-dlldir-x"
847	fi
848	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"
849	;;
850x86_64-*-mingw*)
851	case ${target_thread_file} in
852	  win32)
853	    tmake_file="$tmake_file i386/t-gthr-win32"
854	    ;;
855	  posix)
856	    tmake_file="i386/t-mingw-pthread $tmake_file"
857	    ;;
858	esac
859	# This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
860	if test x$ac_cv_sjlj_exceptions = xyes; then
861		tmake_eh_file="i386/t-sjlj-eh"
862	elif test "${host_address}" = 32; then
863	        # biarch -m32 with --disable-sjlj-exceptions
864	     	tmake_eh_file="i386/t-dw2-eh"
865		md_unwind_header=i386/w32-unwind.h
866	else
867		tmake_eh_file="i386/t-seh-eh"
868	fi
869	# Shared libgcc DLL install dir depends on cross/native build.
870	if test x${build} = x${host} ; then
871		tmake_dlldir_file="i386/t-dlldir"
872	else
873		tmake_dlldir_file="i386/t-dlldir-x"
874	fi
875	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"
876	extra_parts="$extra_parts crtbegin.o crtend.o crtfastmath.o"
877	if test x$enable_vtable_verify = xyes; then
878		extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o"
879	fi
880	;;
881ia64*-*-elf*)
882	extra_parts="$extra_parts crtbeginS.o crtendS.o crtfastmath.o"
883	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"
884	;;
885ia64*-*-freebsd*)
886	extra_parts="$extra_parts crtfastmath.o"
887	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"
888	;;
889ia64*-*-linux*)
890	# Don't use crtbeginT.o from *-*-linux* default.
891	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
892	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"
893	if test x$with_system_libunwind != xyes ; then
894		tmake_file="${tmake_file} t-libunwind-elf ia64/t-linux-libunwind"
895	fi
896	md_unwind_header=ia64/linux-unwind.h
897	;;
898ia64*-*-hpux*)
899	tmake_file="ia64/t-ia64 ia64/t-ia64-elf ia64/t-hpux t-slibgcc ia64/t-slibgcc-hpux t-slibgcc-hpux"
900	;;
901ia64-hp-*vms*)
902	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"
903	extra_parts="$extra_parts crtinitS.o"
904	md_unwind_header=ia64/vms-unwind.h
905	;;
906iq2000*-*-elf*)
907	tmake_file="iq2000/t-iq2000 t-fdpbit"
908	# Don't use default.
909	extra_parts=
910        ;;
911lm32-*-elf*)
912        extra_parts="$extra_parts crti.o crtn.o"
913        tmake_file="lm32/t-lm32 lm32/t-elf t-softfp-sfdf t-softfp"
914	;;
915lm32-*-rtems*)
916        tmake_file="$tmake_file lm32/t-lm32 lm32/t-elf t-softfp-sfdf t-softfp"
917        extra_parts="$extra_parts crti.o crtn.o"
918	;;
919lm32-*-uclinux*)
920        extra_parts="$extra_parts crtbegin.o crtendS.o crtbeginT.o"
921        tmake_file="lm32/t-lm32 lm32/t-uclinux t-libgcc-pic t-softfp-sfdf t-softfp"
922	;;
923m32r-*-elf*)
924	tmake_file="$tmake_file m32r/t-m32r t-fdpbit"
925	extra_parts="$extra_parts crtinit.o crtfini.o"
926 	;;
927m32rle-*-elf*)
928	tmake_file=t-fdpbit
929	;;
930m32r-*-linux*)
931	tmake_file="$tmake_file m32r/t-linux t-fdpbit"
932 	;;
933m32rle-*-linux*)
934	tmake_file="$tmake_file m32r/t-linux t-fdpbit"
935	;;
936m68k-*-elf* | fido-*-elf)
937	tmake_file="$tmake_file m68k/t-floatlib"
938	;;
939m68k*-*-netbsdelf*)
940	;;
941m68k*-*-openbsd*)
942	;;
943m68k-*-uclinux*)	# Motorola m68k/ColdFire running uClinux with uClibc
944	tmake_file="$tmake_file m68k/t-floatlib m68k/t-linux"
945	md_unwind_header=m68k/linux-unwind.h
946	;;
947m68k-*-linux*)			# Motorola m68k's running GNU/Linux
948				# with ELF format using glibc 2
949				# aka the GNU/Linux C library 6.
950	tmake_file="$tmake_file m68k/t-floatlib m68k/t-linux"
951	# If not configured with setjmp/longjmp exceptions, bump the
952	# libgcc version number.
953	if test x$ac_cv_sjlj_exceptions != xyes; then
954	    tmake_file="$tmake_file m68k/t-slibgcc-elf-ver"
955	fi
956	md_unwind_header=m68k/linux-unwind.h
957	;;
958m68k-*-rtems*)
959	tmake_file="$tmake_file m68k/t-floatlib"
960	extra_parts="$extra_parts crti.o crtn.o"
961	;;
962mcore-*-elf)
963	tmake_file="mcore/t-mcore t-fdpbit"
964	extra_parts="$extra_parts crti.o crtn.o"
965	;;
966microblaze*-linux*)
967	tmake_file="${tmake_file} microblaze/t-microblaze t-fdpbit t-slibgcc-libgcc"
968	;;
969microblaze*-*-elf)
970	tmake_file="${tmake_file} microblaze/t-microblaze t-fdpbit"
971	extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o crti.o crtn.o"
972	;;
973microblaze*-*-rtems*)
974	tmake_file="${tmake_file} microblaze/t-microblaze t-fdpbit"
975	extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o crti.o crtn.o"
976	;;
977mips*-*-netbsd*)			# NetBSD/mips, either endian.
978	;;
979mips*-*-linux*)				# Linux MIPS, either endian.
980	extra_parts="$extra_parts crtfastmath.o"
981	tmake_file="${tmake_file} t-crtfm"
982	case ${host} in
983	  mips64r5900* | mipsr5900*)
984	    # The MIPS16 support code uses floating point
985	    # instructions that are not supported on r5900.
986	    ;;
987	  *)
988	    tmake_file="${tmake_file} mips/t-mips16 t-slibgcc-libgcc"
989	    ;;
990	esac
991	md_unwind_header=mips/linux-unwind.h
992	;;
993mips*-sde-elf*)
994	tmake_file="$tmake_file mips/t-crtstuff mips/t-mips16"
995	case "${with_newlib}" in
996	  yes)
997	    # newlib / libgloss.
998	    ;;
999	  *)
1000	    # MIPS toolkit libraries.
1001	    tmake_file="$tmake_file mips/t-sdemtk"
1002	    ;;
1003	esac
1004	extra_parts="$extra_parts crti.o crtn.o"
1005	;;
1006mipsisa32-*-elf* | mipsisa32el-*-elf* | \
1007mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
1008mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
1009mipsisa64-*-elf* | mipsisa64el-*-elf* | \
1010mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
1011mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
1012	tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16"
1013	extra_parts="$extra_parts crti.o crtn.o"
1014	;;
1015mipsisa64sr71k-*-elf*)
1016	tmake_file="$tmake_file mips/t-elf mips/t-crtstuff t-fdpbit"
1017	extra_parts="$extra_parts crti.o crtn.o"
1018        ;;
1019mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
1020	tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16"
1021	extra_parts="$extra_parts crti.o crtn.o"
1022	;;
1023mips-*-elf* | mipsel-*-elf*)
1024	tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16"
1025	extra_parts="$extra_parts crti.o crtn.o"
1026	;;
1027mipsr5900-*-elf* | mipsr5900el-*-elf*)
1028	tmake_file="$tmake_file mips/t-elf mips/t-crtstuff"
1029	extra_parts="$extra_parts crti.o crtn.o"
1030	;;
1031mips64-*-elf* | mips64el-*-elf*)
1032	tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16"
1033	extra_parts="$extra_parts crti.o crtn.o"
1034	;;
1035mips64r5900-*-elf* | mips64r5900el-*-elf*)
1036	tmake_file="$tmake_file mips/t-elf mips/t-crtstuff"
1037	extra_parts="$extra_parts crti.o crtn.o"
1038	;;
1039mips64vr-*-elf* | mips64vrel-*-elf*)
1040	tmake_file="$tmake_file mips/t-elf mips/t-vr mips/t-crtstuff"
1041	extra_parts="$extra_parts crti.o crtn.o"
1042        ;;
1043mips64orion-*-elf* | mips64orionel-*-elf*)
1044	tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16"
1045	extra_parts="$extra_parts crti.o crtn.o"
1046	;;
1047mips*-*-rtems*)
1048	tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16"
1049	extra_parts="$extra_parts crti.o crtn.o"
1050	;;
1051mips-wrs-vxworks)
1052	;;
1053mipstx39-*-elf* | mipstx39el-*-elf*)
1054	tmake_file="$tmake_file mips/t-crtstuff mips/t-mips16"
1055	;;
1056mmix-knuth-mmixware)
1057	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
1058	tmake_file="${tmake_file} ${cpu_type}/t-${cpu_type}"
1059	;;
1060mn10300-*-*)
1061	tmake_file=t-fdpbit
1062	;;
1063moxie-*-elf | moxie-*-moxiebox* | moxie-*-uclinux* | moxie-*-rtems*)
1064	tmake_file="$tmake_file moxie/t-moxie t-softfp-sfdf t-softfp-excl t-softfp"
1065	extra_parts="$extra_parts crti.o crtn.o crtbegin.o crtend.o"
1066	;;
1067msp430-*-elf*)
1068	tmake_file="$tm_file t-crtstuff t-fdpbit msp430/t-msp430"
1069	extra_parts="crtbegin.o crtend.o crtbegin_no_eh.o crtend_no_eh.o"
1070	extra_parts="$extra_parts libmul_none.a libmul_16.a libmul_32.a libmul_f5.a"
1071	;;
1072nds32*-linux*)
1073	# Basic makefile fragment and extra_parts for crt stuff.
1074	# We also append c-isr library implementation.
1075	tmake_file="${tmake_file} t-slibgcc-libgcc"
1076	tmake_file="${tmake_file} nds32/t-nds32-glibc nds32/t-crtstuff t-softfp-sfdf t-softfp"
1077	# The header file of defining MD_FALLBACK_FRAME_STATE_FOR.
1078	md_unwind_header=nds32/linux-unwind.h
1079	# Append library definition makefile fragment according to --with-nds32-lib=X setting.
1080	case "${with_nds32_lib}" in
1081	"" | glibc | uclibc )
1082		;;
1083	*)
1084		echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: glibc uclibc" 1>&2
1085		exit 1
1086		;;
1087	esac
1088	;;
1089nds32*-elf*)
1090	# Basic makefile fragment and extra_parts for crt stuff.
1091	# We also append c-isr library implementation.
1092	tmake_file="${tmake_file} nds32/t-nds32 nds32/t-nds32-isr"
1093	extra_parts="crtbegin1.o crtend1.o libnds32_isr.a"
1094	# Append library definition makefile fragment according to --with-nds32-lib=X setting.
1095	case "${with_nds32_lib}" in
1096	"" | newlib)
1097		# Append library definition makefile fragment t-nds32-newlib.
1098		# Append 'soft-fp' software floating point make rule fragment provided by gcc.
1099		tmake_file="${tmake_file} nds32/t-nds32-newlib t-softfp-sfdf t-softfp"
1100		;;
1101	mculib)
1102		# Append library definition makefile fragment t-nds32-mculib.
1103		# The software floating point library is included in mculib.
1104		tmake_file="${tmake_file} nds32/t-nds32-mculib"
1105		;;
1106	*)
1107		echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib" 1>&2
1108		exit 1
1109		;;
1110	esac
1111	;;
1112nios2-*-linux*)
1113	tmake_file="$tmake_file nios2/t-nios2 nios2/t-linux t-libgcc-pic t-eh-dw2-dip t-slibgcc-libgcc"
1114	tm_file="$tm_file nios2/elf-lib.h"
1115	md_unwind_header=nios2/linux-unwind.h
1116	;;
1117nios2-*-*)
1118	tmake_file="$tmake_file nios2/t-nios2 t-softfp-sfdf t-softfp-excl t-softfp"
1119	extra_parts="$extra_parts crti.o crtn.o"
1120	;;
1121or1k-*-linux*)
1122	tmake_file="$tmake_file or1k/t-or1k"
1123	tmake_file="$tmake_file t-softfp-sfdf t-softfp"
1124	md_unwind_header=or1k/linux-unwind.h
1125	;;
1126or1k-*-*)
1127	tmake_file="$tmake_file or1k/t-or1k"
1128	tmake_file="$tmake_file t-softfp-sfdf t-softfp"
1129	;;
1130pdp11-*-*)
1131	tmake_file="pdp11/t-pdp11 t-fdpbit"
1132	;;
1133powerpc-*-darwin*)
1134	case ${host} in
1135	*-*-darwin9* | *-*-darwin[12][0-9]*)
1136	  # libSystem contains unwind information for signal frames since
1137	  # Darwin 9.
1138	  ;;
1139	*)
1140	  md_unwind_header=rs6000/darwin-unwind.h
1141	  ;;
1142	esac
1143	tmake_file="$tmake_file rs6000/t-ppc64-fp rs6000/t-ibm-ldouble"
1144	extra_parts="$extra_parts crt2.o crt3_2.o libef_ppc.a dw_ppc.o"
1145	;;
1146powerpc64-*-darwin*)
1147	tmake_file="$tmake_file rs6000/t-darwin64 rs6000/t-ibm-ldouble"
1148	extra_parts="$extra_parts crt2.o crt3_2.o libef_ppc.a dw_ppc.o"
1149	;;
1150powerpc*-*-freebsd*)
1151	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff rs6000/t-freebsd t-softfp-sfdf t-softfp-excl t-softfp"
1152	extra_parts="$extra_parts crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
1153	case ${host} in
1154	powerpc64*)
1155	  tmake_file="${tmake_file} rs6000/t-freebsd64"
1156	  md_unwind_header=rs6000/freebsd-unwind.h
1157	  ;;
1158	esac
1159	;;
1160powerpc-*-netbsd*)
1161	tmake_file="$tmake_file rs6000/t-netbsd rs6000/t-crtstuff"
1162	;;
1163powerpc-*-eabispe*)
1164	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
1165	extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
1166	;;
1167powerpc-*-eabisimaltivec*)
1168	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
1169	extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
1170	;;
1171powerpc-*-eabisim*)
1172	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
1173	extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
1174	;;
1175powerpc-*-elf*)
1176	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
1177	extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
1178	;;
1179powerpc-*-eabialtivec*)
1180	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
1181	extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
1182	;;
1183powerpc-xilinx-eabi*)
1184	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
1185	extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
1186	;;
1187powerpc-*-eabi*)
1188	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
1189	extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
1190	;;
1191powerpc-*-rtems*)
1192	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
1193	extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
1194	;;
1195powerpc*-*-linux*)
1196	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"
1197	tmake_file="${tmake_file} t-stack rs6000/t-stack-rs6000"
1198	case $ppc_fp_type in
1199	64)
1200		;;
1201	hard)
1202		tmake_file="${tmake_file} t-hardfp-sfdf t-hardfp"
1203		;;
1204	soft)
1205		tmake_file="${tmake_file} t-softfp-sfdf ${ppc_fp_compat} t-softfp"
1206		;;
1207	e500v1)
1208		tmake_file="${tmake_file} rs6000/t-e500v1-fp ${ppc_fp_compat} t-softfp t-hardfp"
1209		;;
1210	e500v2)
1211		tmake_file="${tmake_file} t-hardfp-sfdf rs6000/t-e500v2-fp ${ppc_fp_compat} t-softfp t-hardfp"
1212		;;
1213	*)
1214		echo "Unknown ppc_fp_type $ppc_fp_type" 1>&2
1215		exit 1
1216		;;
1217	esac
1218
1219	if test $libgcc_cv_powerpc_float128 = yes; then
1220		tmake_file="${tmake_file} rs6000/t-float128"
1221	fi
1222
1223	if test $libgcc_cv_powerpc_float128_hw = yes; then
1224		tmake_file="${tmake_file} rs6000/t-float128-hw"
1225	fi
1226
1227	if test $libgcc_cv_powerpc_3_1_float128_hw = yes; then
1228		tmake_file="${tmake_file} rs6000/t-float128-p10-hw"
1229	fi
1230
1231	extra_parts="$extra_parts ecrti.o ecrtn.o ncrti.o ncrtn.o"
1232	md_unwind_header=rs6000/linux-unwind.h
1233	;;
1234powerpc*-wrs-vxworks7*)
1235        tmake_file="$tmake_file rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff rs6000/t-linux t-dfprules config/rs6000/t-ppc64-fp t-slibgcc-libgcc"
1236        case $ppc_fp_type in
1237        64)
1238                ;;
1239        hard)
1240                tmake_file="${tmake_file} t-hardfp-sfdf"
1241                ;;
1242        soft)
1243                tmake_file="${tmake_file} t-softfp-sfdf t-softfp"
1244                ;;
1245        *)
1246                echo "Unknown ppc_fp_type $ppc_fp_type" 1>&2
1247                exit 1
1248                ;;
1249        esac
1250        ;;
1251powerpc-wrs-vxworks*)
1252	tmake_file="$tmake_file rs6000/t-ppccomm rs6000/t-savresfgpr t-fdpbit"
1253	extra_parts="$extra_parts crtbegin.o crtend.o"
1254	;;
1255powerpc-*-lynxos*)
1256	tmake_file="$tmake_file rs6000/t-lynx t-fdpbit"
1257	;;
1258powerpcle-*-elf*)
1259	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
1260	extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
1261	;;
1262powerpcle-*-eabisim*)
1263	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
1264	extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
1265	;;
1266powerpcle-*-eabi*)
1267	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
1268	extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
1269	;;
1270pru-*-*)
1271	tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl t-softfp t-gnu-prefix pru/t-pru"
1272	tm_file="$tm_file pru/pru-abi.h"
1273	;;
1274riscv*-*-linux*)
1275	tmake_file="${tmake_file} riscv/t-softfp${host_address} t-softfp riscv/t-elf riscv/t-elf${host_address} t-slibgcc-libgcc"
1276	extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o crtendS.o crtbeginT.o"
1277	md_unwind_header=riscv/linux-unwind.h
1278	;;
1279riscv*-*-freebsd*)
1280	tmake_file="${tmake_file} riscv/t-softfp${host_address} t-softfp riscv/t-elf riscv/t-elf${host_address} t-slibgcc-libgcc"
1281	extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o crtendS.o crtbeginT.o"
1282	;;
1283riscv*-*-*)
1284	tmake_file="${tmake_file} riscv/t-softfp${host_address} t-softfp riscv/t-elf riscv/t-elf${host_address}"
1285	extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o"
1286	;;
1287rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
1288	md_unwind_header=rs6000/aix-unwind.h
1289	tmake_file="t-fdpbit rs6000/t-ppc64-fp rs6000/t-slibgcc-aix rs6000/t-ibm-ldouble"
1290	;;
1291rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
1292	md_unwind_header=rs6000/aix-unwind.h
1293	tmake_file="t-fdpbit rs6000/t-ppc64-fp rs6000/t-slibgcc-aix rs6000/t-ibm-ldouble"
1294	;;
1295rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*)
1296	md_unwind_header=rs6000/aix-unwind.h
1297	tmake_file="t-fdpbit rs6000/t-ppc64-fp rs6000/t-slibgcc-aix rs6000/t-ibm-ldouble rs6000/t-aix-cxa"
1298	extra_parts="crtcxa.o crtcxa_s.o crtdbase.o crtcxa_64.o crtcxa_64_s.o crtdbase_64.o"
1299	;;
1300rl78-*-elf)
1301	tmake_file="$tm_file t-fdpbit rl78/t-rl78"
1302	;;
1303rx-*-elf)
1304	tmake_file="rx/t-rx t-fdpbit"
1305	tm_file="$tm_file rx/rx-abi.h rx/rx-lib.h"
1306	;;
1307rx-*-linux*)
1308	tmake_file="rx/t-rx t-fdpbit"
1309	tm_file="$tm_file rx/rx-lib.h"
1310	;;
1311s390-*-linux*)
1312	tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux s390/32/t-floattodi t-stack s390/t-stack-s390"
1313	md_unwind_header=s390/linux-unwind.h
1314	;;
1315s390x-*-linux*)
1316	tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux t-stack s390/t-stack-s390"
1317	if test "${host_address}" = 32; then
1318	   tmake_file="${tmake_file} s390/32/t-floattodi"
1319	fi
1320	md_unwind_header=s390/linux-unwind.h
1321	;;
1322s390x-ibm-tpf*)
1323	tmake_file="${tmake_file} s390/t-crtstuff t-libgcc-pic t-eh-dw2-dip s390/t-tpf"
1324	extra_parts="crtbeginS.o crtendS.o"
1325	md_unwind_header=s390/tpf-unwind.h
1326	;;
1327sh-*-elf* | sh[12346l]*-*-elf*)
1328	tmake_file="$tmake_file sh/t-sh t-crtstuff-pic t-fdpbit"
1329	extra_parts="$extra_parts crt1.o crti.o crtn.o crtbeginS.o crtendS.o \
1330		libic_invalidate_array_4-100.a \
1331		libic_invalidate_array_4-200.a \
1332		libic_invalidate_array_4a.a \
1333		libgcc-Os-4-200.a libgcc-4-300.a"
1334	case ${host} in
1335	sh*-superh-elf)
1336		tmake_file="$tmake_file sh/t-superh"
1337		extra_parts="$extra_parts crt1-mmu.o gcrt1-mmu.o gcrt1.o"
1338 		;;
1339 	esac
1340	;;
1341sh-*-linux* | sh[2346lbe]*-*-linux*)
1342	tmake_file="${tmake_file} sh/t-sh t-slibgcc-libgcc sh/t-linux t-fdpbit"
1343	md_unwind_header=sh/linux-unwind.h
1344	;;
1345sh-*-netbsdelf* | shl*-*-netbsdelf*)
1346	tmake_file="$tmake_file sh/t-sh sh/t-netbsd"
1347
1348	# NetBSD's C library includes a fast software FP library that
1349	# has support for setting/setting the rounding mode, exception
1350	# mask, etc.  Therefore, we don't want to include software FP
1351	# in libgcc.
1352	;;
1353sh-*-rtems*)
1354	tmake_file="$tmake_file sh/t-sh t-crtstuff-pic t-fdpbit"
1355	extra_parts="$extra_parts crt1.o crti.o crtn.o crtbeginS.o crtendS.o \
1356		libic_invalidate_array_4-100.a \
1357		libic_invalidate_array_4-200.a \
1358		libic_invalidate_array_4a.a \
1359		libgcc-Os-4-200.a libgcc-4-300.a"
1360	;;
1361sh-wrs-vxworks)
1362	tmake_file="$tmake_file sh/t-sh t-crtstuff-pic t-fdpbit"
1363	;;
1364sparc-*-netbsdelf*)
1365	;;
1366sparc64-*-openbsd*)
1367	;;
1368sparc-*-elf*)
1369	case ${host} in
1370	*-leon[3-9]*)
1371		;;
1372	*)
1373	  	tmake_file="sparc/t-softmul"
1374	  	;;
1375	esac
1376	tmake_file="${tmake_file} t-fdpbit t-crtfm"
1377	extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
1378	;;
1379sparc-*-linux*)		# SPARC's running GNU/Linux, libc6
1380	tmake_file="${tmake_file} t-crtfm"
1381	if test "${host_address}" = 64; then
1382		tmake_file="$tmake_file sparc/t-linux64"
1383	fi
1384	case ${host} in
1385	*-leon*)
1386		tmake_file="${tmake_file} t-fdpbit"
1387		;;
1388	*)
1389		tmake_file="${tmake_file} sparc/t-linux"
1390		;;
1391	esac
1392	case ${host} in
1393	*-leon[3-9]*)
1394		;;
1395	*)
1396		if test "${host_address}" = 32; then
1397			tmake_file="$tmake_file sparc/t-softmul"
1398		fi
1399	  	;;
1400	esac
1401	extra_parts="$extra_parts crtfastmath.o"
1402	md_unwind_header=sparc/linux-unwind.h
1403	;;
1404sparc-*-rtems*)
1405	tmake_file="$tmake_file sparc/t-elf sparc/t-softmul t-crtfm t-fdpbit"
1406	extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
1407	;;
1408sparc*-*-solaris2*)
1409	tmake_file="$tmake_file t-crtfm"
1410	extra_parts="$extra_parts crtfastmath.o"
1411	md_unwind_header=sparc/sol2-unwind.h
1412	;;
1413sparc64-*-elf*)
1414	tmake_file="${tmake_file} t-crtfm"
1415	extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
1416	;;
1417sparc64-*-rtems*)
1418	tmake_file="$tmake_file t-crtfm"
1419	extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
1420	;;
1421sparc-wrs-vxworks)
1422	;;
1423sparc64-*-freebsd*|ultrasparc-*-freebsd*)
1424	tmake_file="$tmake_file t-crtfm"
1425	extra_parts="$extra_parts crtfastmath.o"
1426	;;
1427sparc64-*-linux*)		# 64-bit SPARC's running GNU/Linux
1428	extra_parts="$extra_parts crtfastmath.o"
1429	tmake_file="${tmake_file} t-crtfm sparc/t-linux"
1430	if test "${host_address}" = 64; then
1431		tmake_file="${tmake_file} sparc/t-linux64"
1432	fi
1433	if test "${host_address}" = 32; then
1434		tmake_file="${tmake_file} sparc/t-softmul"
1435	fi
1436	md_unwind_header=sparc/linux-unwind.h
1437	;;
1438sparc64-*-netbsd*)
1439	;;
1440tic6x-*-uclinux)
1441	tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl t-softfp \
1442		c6x/t-elf  c6x/t-uclinux t-crtstuff-pic t-libgcc-pic \
1443		t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-gnu-prefix"
1444	tm_file="$tm_file c6x/c6x-abi.h"
1445	extra_parts="$extra_parts crtbeginS.o crtendS.o crti.o crtn.o"
1446	unwind_header=config/c6x/unwind-c6x.h
1447	;;
1448tic6x-*-elf)
1449	tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl t-softfp t-gnu-prefix c6x/t-elf"
1450	tm_file="$tm_file c6x/c6x-abi.h"
1451	extra_parts="$extra_parts crtbeginS.o crtendS.o crti.o crtn.o"
1452	unwind_header=config/c6x/unwind-c6x.h
1453	;;
1454tilegx*-*-linux*)
1455	if test "${host_address}" = 64; then
1456		tmake_file="${tmake_file} tilegx/t-softfp"
1457	fi
1458	tmake_file="${tmake_file} tilegx/t-crtstuff t-softfp-sfdf t-softfp tilegx/t-tilegx"
1459	md_unwind_header=tilepro/linux-unwind.h
1460        ;;
1461tilepro*-*-linux*)
1462	tmake_file="${tmake_file} tilepro/t-crtstuff t-softfp-sfdf t-softfp tilepro/t-tilepro t-slibgcc-libgcc"
1463	md_unwind_header=tilepro/linux-unwind.h
1464        ;;
1465v850*-*-*)
1466	tmake_file="${tmake_file} v850/t-v850 t-fdpbit"
1467	;;
1468vax-*-linux*)
1469	tmake_file="$tmake_file vax/t-linux"
1470	;;
1471vax-*-netbsdelf*)
1472	;;
1473vax-*-openbsd*)
1474	;;
1475visium-*-elf*)
1476        extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o"
1477        tmake_file="visium/t-visium t-fdpbit"
1478        ;;
1479xstormy16-*-elf)
1480	tmake_file="stormy16/t-stormy16 t-fdpbit"
1481	;;
1482xtensa*-*-elf*)
1483	tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-elf"
1484	extra_parts="$extra_parts crti.o crtn.o"
1485	;;
1486xtensa*-*-linux*)
1487	tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-linux t-slibgcc-libgcc"
1488	md_unwind_header=xtensa/linux-unwind.h
1489	;;
1490xtensa*-*-uclinux*)
1491	tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-linux t-slibgcc-libgcc"
1492	md_unwind_header=xtensa/linux-unwind.h
1493	extra_parts="$extra_parts crtbeginS.o crtbeginT.o crtendS.o"
1494	;;
1495am33_2.0-*-linux*)
1496	# Don't need crtbeginT.o from *-*-linux* default.
1497	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
1498	tmake_file="$tmake_file t-fdpbit"
1499	;;
1500m32c-*-elf*|m32c-*-rtems*)
1501	tmake_file="$tmake_file m32c/t-m32c"
1502 	;;
1503nvptx-*)
1504	tmake_file="$tmake_file nvptx/t-nvptx"
1505	extra_parts="crt0.o"
1506	;;
1507*)
1508	echo "*** Configuration ${host} not supported" 1>&2
1509	exit 1
1510	;;
1511esac
1512
1513case ${host} in
1514i[34567]86-*-* | x86_64-*-*)
1515	case ${host} in
1516	*-musl*)
1517		tmake_file="${tmake_file} i386/t-cpuinfo-static"
1518		;;
1519	*)
1520		tmake_file="${tmake_file} i386/t-cpuinfo"
1521		;;
1522	esac
1523	;;
1524esac
1525
1526case ${host} in
1527i[34567]86-*-linux* | x86_64-*-linux* | \
1528  i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \
1529  i[34567]86-*-gnu*)
1530	tmake_file="${tmake_file} t-tls i386/t-linux i386/t-msabi t-slibgcc-libgcc"
1531	if test "$libgcc_cv_cfi" = "yes"; then
1532		tmake_file="${tmake_file} t-stack i386/t-stack-i386"
1533	fi
1534	;;
1535esac
1536
1537case ${host} in
1538i[34567]86-*-elfiamcu | i[34567]86-*-rtems*)
1539	# These use soft-fp for SFmode and DFmode, not just TFmode.
1540	;;
1541i[34567]86-*-* | x86_64-*-*)
1542  	tmake_file="${tmake_file} t-softfp-tf"
1543	if test "${host_address}" = 32; then
1544		tmake_file="${tmake_file} i386/${host_address}/t-softfp"
1545	fi
1546	tmake_file="${tmake_file} i386/t-softfp t-softfp"
1547	;;
1548esac
1549
1550case ${host} in
1551i[34567]86-*-linux* | x86_64-*-linux*)
1552	# Provide backward binary compatibility for 64bit Linux/x86.
1553	if test "${host_address}" = 64; then
1554		tmake_file="${tmake_file} i386/${host_address}/t-softfp-compat"
1555	fi
1556	tm_file="${tm_file} i386/value-unwind.h"
1557	;;
1558aarch64*-*-*)
1559	# ILP32 needs an extra header for unwinding
1560	tm_file="${tm_file} aarch64/value-unwind.h"
1561	;;
1562esac
1563
1564# The vxworks threads implementation relies on a few extra sources,
1565# which we arrange to add after everything else:
1566
1567case ${target_thread_file} in
1568vxworks)
1569	case ${host} in
1570	*-*-vxworksae)
1571		tmake_file="${tmake_file} t-gthr-vxworksae"
1572		;;
1573	*-*-vxworks*)
1574		tmake_file="${tmake_file} t-gthr-vxworks"
1575		;;
1576	esac
1577esac
1578
1579case ${host} in
1580*-*-musl*)
1581  # The gthr weak references are unsafe with static linking
1582  tmake_file="$tmake_file t-gthr-noweak"
1583  ;;
1584esac
1585