# libgcc host-specific configuration file.
# Copyright (C) 1997-2022 Free Software Foundation, Inc.

#This file is part of GCC.

#GCC is free software; you can redistribute it and/or modify it under
#the terms of the GNU General Public License as published by the Free
#Software Foundation; either version 3, or (at your option) any later
#version.

#GCC is distributed in the hope that it will be useful, but WITHOUT
#ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
#FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
#for more details.

#You should have received a copy of the GNU General Public License
#along with GCC; see the file COPYING3.  If not see
#<http://www.gnu.org/licenses/>.

# This is the libgcc host-specific configuration file
# where a configuration type is mapped to different system-specific
# definitions and files.  This is invoked by the autoconf-generated
# configure script.  Putting it in a separate shell file lets us skip
# running autoconf when modifying host-specific information.

# This file bears an obvious resemblance to gcc/config.gcc.  The cases
# should be kept similar, to ease moving library-specific settings
# from config.gcc to this file.  That is also why tmake_file is
# left as tmake_file, rather than hmake_file, even though this library
# switches on ${host}.

# This file switches on the shell variable ${host}, and also uses the
# following shell variables:
#
#  with_*		Various variables as set by configure.

# This file sets the following shell variables for use by the
# autoconf-generated configure script:
#
#  asm_hidden_op	The assembler pseudo-op to use for hide
#			lists for object files implemented in
#			assembly (with -fvisibility=hidden for C).
#			The default is ".hidden".
#  cpu_type		The name of the cpu, if different from the first
#			chunk of the canonical host name.
#  enable_execute_stack The name of a source file implementing
#			__enable_execute_stack.
#  extra_parts		List of extra object files that should be compiled
#			for this target machine.  This may be overridden
#			by setting EXTRA_PARTS in a tmake_file fragment.
#			If either is set, EXTRA_PARTS and
#			EXTRA_MULTILIB_PARTS inherited from the GCC
#			subdirectory will be ignored.
#  md_unwind_header	The name of a header file defining
#			MD_FALLBACK_FRAME_STATE_FOR.
#  sfp_machine_header	The name of a sfp-machine.h header file for soft-fp.
#  			Defaults to "$cpu_type/sfp-machine.h" if it exists,
#			no-sfp-machine.h otherwise.
#  tmake_file		A list of machine-description-specific
#			makefile fragments.
#  tm_defines		List of target macros to define for all compilations.
#  tm_file		A list of target macro files used only for code
#			built for the target, not the host.  These files
#			are relative to $srcdir/config and must not have
#			the same names as files in $srcdir/../gcc/config.
#  unwind_header	The name of the header file declaring the unwind
#			runtime interface routines.

asm_hidden_op=.hidden
enable_execute_stack=
extra_parts=
tmake_file=
tm_file=
tm_define=
md_unwind_header=no-unwind.h
unwind_header=unwind-generic.h

# Set default cpu_type so it can be updated in each machine entry.
cpu_type=`echo ${host} | sed 's/-.*$//'`
case ${host} in
m32c*-*-*)
        cpu_type=m32c
	tmake_file=t-fdpbit
        ;;
aarch64*-*-*)
	cpu_type=aarch64
	;;
alpha*-*-*)
	cpu_type=alpha
	;;
am33_2.0-*-linux*)
	cpu_type=mn10300
	;;
amdgcn*-*-*)
	cpu_type=gcn
	tmake_file="${tmake_file} t-softfp-sfdf t-softfp"
	;;
arc*-*-*)
	cpu_type=arc
	;;
arm*-*-*)
	cpu_type=arm
	;;
avr-*-*)
	cpu_type=avr
	;;    
bfin*-*)
	cpu_type=bfin
	;;
bpf-*-*)
        cpu_type=bpf
        ;;
csky*-*-*)
	cpu_type=csky
	;;
fido-*-*)
	cpu_type=m68k
	;;
frv*)	cpu_type=frv
	;;
ft32*)	cpu_type=ft32
	;;
moxie*)	cpu_type=moxie
	;;
i[34567]86-*-*)
	cpu_type=i386
	;;
x86_64-*-*)
	cpu_type=i386
	;;
ia64-*-*)
	;;
hppa*-*-*)
	cpu_type=pa
	;;
lm32*-*-*)
	cpu_type=lm32
	;;
loongarch*-*-*)
	cpu_type=loongarch
	tmake_file="loongarch/t-loongarch"
	if test "${libgcc_cv_loongarch_hard_float}" = yes; then
		tmake_file="${tmake_file} t-hardfp-sfdf t-hardfp"
	else
		tmake_file="${tmake_file} t-softfp-sfdf"
	fi
	if test "${ac_cv_sizeof_long_double}" = 16; then
		tmake_file="${tmake_file} loongarch/t-softfp-tf"
	fi
	if test "${host_address}" = 64; then
		tmake_file="${tmake_file} loongarch/t-loongarch64"
	fi
	tmake_file="${tmake_file} t-softfp"
	;;
m32r*-*-*)
        cpu_type=m32r
        ;;
m68k-*-*)
	;;
microblaze*-*-*)
	cpu_type=microblaze
	;;
mips*-*-*)
	# All MIPS targets provide a full set of FP routines.
	cpu_type=mips
	tmake_file="mips/t-mips"
	if test "${libgcc_cv_mips_hard_float}" = yes; then
		tmake_file="${tmake_file} t-hardfp-sfdf t-hardfp"
	else
		tmake_file="${tmake_file} t-softfp-sfdf"
	fi
	if test "${ac_cv_sizeof_long_double}" = 16; then
		tmake_file="${tmake_file} mips/t-softfp-tf"
	fi
	if test "${host_address}" = 64; then
		tmake_file="${tmake_file} mips/t-mips64"
	fi
	tmake_file="${tmake_file} t-softfp"
	;;
nds32*-*)
	cpu_type=nds32
	;;
nios2*-*-*)
	cpu_type=nios2
	;;
or1k*-*-*)
	cpu_type=or1k
	;;
powerpc*-*-*)
	cpu_type=rs6000
	;;
pru-*-*)
	cpu_type=pru
	;;
rs6000*-*-*)
	;;
riscv*-*-*)
	cpu_type=riscv
	;;
sparc64*-*-*)
	cpu_type=sparc
	;;
sparc*-*-*)
	cpu_type=sparc
	;;
s390*-*-*)
	cpu_type=s390
	;;
# Note the 'l'; we need to be able to match e.g. "shle" or "shl".
sh[123456789lbe]*-*-*)
	cpu_type=sh
	;;
v850*-*-*)
	cpu_type=v850
	;;
tic6x-*-*)
	cpu_type=c6x
	;;
esac

# Common parts for widely ported systems.
case ${host} in
*-*-darwin*)
  asm_hidden_op=.private_extern
  tmake_file="$tmake_file t-darwin ${cpu_type}/t-darwin t-libgcc-pic"
  # The unwinder is provided by the system shared libraries, do not add one
  # to the shared libgcc but, for older systems, we build a shared unwinder
  # separately so that we can construct a libgcc_s.1 to use for binaries
  # linked against the old libgcc_ext.10.x stubs.
  case ${host} in
    *-*-darwin[89]* | *-*-darwin10*)
      tmake_file="$tmake_file t-darwin-ehs ${cpu_type}/t-darwin-ehs"
      ;;
  esac
  tmake_file="$tmake_file t-slibgcc-darwin"
  extra_parts="crt3.o libd10-uwfef.a crttms.o crttme.o libemutls_w.a"
  ;;
*-*-dragonfly*)
  tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip"
  tmake_file="$tmake_file t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver"
  extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
  ;;
*-*-freebsd*)
  # This is the generic ELF configuration of FreeBSD.  Later
  # machine-specific sections may refine and add to this
  # configuration.
  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"
  extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
  case ${target_thread_file} in
    posix)
      tmake_file="${tmake_file} t-freebsd-thread"
      # Before 5.0, FreeBSD can't bind shared libraries to -lc
      # when "optionally" threaded via weak pthread_* checks.
      case ${host} in
        *-*-freebsd[34] | *-*-freebsd[34].*)
          tmake_file="${tmake_file} t-slibgcc-nolc-override"
          ;;
      esac
      ;;
  esac
  ;;
*-*-fuchsia*)
  tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-fuchsia"
  extra_parts="crtbegin.o crtend.o"
  ;;
*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)
  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"
  extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
  if test x$enable_vtable_verify = xyes; then
    extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o"
  fi
  ;;
*-*-lynxos*)
  tmake_file="$tmake_file t-lynx $cpu_type/t-crtstuff t-crtstuff-pic t-libgcc-pic"
  extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
  ;;
*-*-netbsd*)
  tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip"
  tmake_file="$tmake_file t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver"
  tmake_file="$tmake_file t-slibgcc-libgcc"
  extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o"
  ;;
*-*-openbsd*)
  tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip"
  case ${target_thread_file} in
    posix)
      tmake_file="$tmake_file t-openbsd-thread"
      ;;
  esac
  ;;
*-*-rtems*)
  tmake_file="$tmake_file t-rtems"
  extra_parts="crtbegin.o crtend.o"
  ;;
*-*-solaris2*)
  # Unless linker support and dl_iterate_phdr are present,
  # unwind-dw2-fde-dip.c automatically falls back to unwind-dw2-fde.c.
  tmake_file="$tmake_file sol2/t-sol2 t-eh-dw2-dip t-crtstuff-pic t-libgcc-pic t-slibgcc t-slibgcc-elf-ver"
  if test $with_gnu_ld = yes; then
    tmake_file="$tmake_file t-slibgcc-gld"
  else
    tmake_file="$tmake_file t-slibgcc-sld"
  fi
  # Add cpu-specific t-sol2 after t-slibgcc-* so it can augment SHLIB_MAPFILES.
  tmake_file="$tmake_file $cpu_type/t-sol2"
  extra_parts="gmon.o crtbegin.o crtend.o"
  if test "${libgcc_cv_solaris_crts}" = yes; then
    # Solaris 11.4 provides crt1.o, crti.o, and crtn.o as part of the
    # base system.  crtp.o and crtpg.o implement the compiler-dependent parts.
    extra_parts="$extra_parts crtp.o crtpg.o"
    # If the Solaris CRTs are present, both ld and gld will have PIE support.
    extra_parts="$extra_parts crtbeginS.o crtendS.o"
  else
    case ${host} in
      i?86-*-solaris2* | x86_64-*-solaris2*)
        # Solaris 10+/x86 provides crt1.o, crti.o, crtn.o, and gcrt1.o as
        # part of the base system.
        ;;
      sparc*-*-solaris2*)
        # Solaris 10+/SPARC lacks crt1.o and gcrt1.o.
        extra_parts="$extra_parts crt1.o gcrt1.o"
        ;;
    esac
  fi
  if test x$enable_vtable_verify = xyes; then
    extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o"
  fi
  ;;
*-*-uclinux*)
  extra_parts="crtbegin.o crtend.o"
  ;;
*-*-*vms*)
  tmake_file="vms/t-vms"
  extra_parts="crt0.o crtbegin.o crtbeginS.o crtend.o crtendS.o"
  ;;
*-*-vxworksae*)
  tmake_file=t-vxworksae
  ;;
*-*-vxworks*)
  tmake_file=t-vxworks
  ;;
*-*-elf)
  extra_parts="crtbegin.o crtend.o"
  ;;
esac

# VxWorks ports rely on specially crafted crtstuff files
case ${host} in
*-*-vxworks*)
  tmake_file="${tmake_file} t-vxcrtstuff"
  ;;
esac

case ${host} in
*-*-darwin* | *-*-dragonfly* | *-*-freebsd* | *-*-netbsd* | *-*-openbsd* | \
  *-*-solaris2*)
  enable_execute_stack=enable-execute-stack-mprotect.c
  ;;
i[34567]86-*-mingw* | x86_64-*-mingw*)
  enable_execute_stack=config/i386/enable-execute-stack-mingw32.c
  ;;
i[34567]86-*-cygwin* | x86_64-*-cygwin*)
  enable_execute_stack=config/i386/enable-execute-stack-mingw32.c
  ;;
*)
  enable_execute_stack=enable-execute-stack-empty.c;
  ;;
esac

case ${host} in
aarch64*-*-elf | aarch64*-*-rtems*)
	extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o"
	extra_parts="$extra_parts crtfastmath.o"
	tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
	tmake_file="${tmake_file} ${cpu_type}/t-lse t-slibgcc-libgcc"
	tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
	tmake_file="${tmake_file} t-dfprules"
	md_unwind_header=aarch64/aarch64-unwind.h
	;;
aarch64*-*-freebsd*)
	extra_parts="$extra_parts crtfastmath.o"
	tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
	tmake_file="${tmake_file} ${cpu_type}/t-lse t-slibgcc-libgcc"
	tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
	tmake_file="${tmake_file} t-dfprules"
	md_unwind_header=aarch64/freebsd-unwind.h
	;;
aarch64*-*-netbsd*)
	extra_parts="$extra_parts crtfastmath.o"
	tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
	tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
	tmake_file="${tmake_file} t-dfprules"
	md_unwind_header=aarch64/aarch64-unwind.h
	;;
aarch64*-*-fuchsia*)
	tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
	tmake_file="${tmake_file} ${cpu_type}/t-lse t-slibgcc-libgcc"
	tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp"
	tmake_file="${tmake_file} t-dfprules"
	;;
aarch64*-*-linux*)
	extra_parts="$extra_parts crtfastmath.o"
	md_unwind_header=aarch64/linux-unwind.h
	tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
	tmake_file="${tmake_file} ${cpu_type}/t-lse t-slibgcc-libgcc"
	tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
	tmake_file="${tmake_file} t-dfprules"
	;;
aarch64*-*-vxworks7*)
	extra_parts="$extra_parts crtfastmath.o"
	md_unwind_header=aarch64/aarch64-unwind.h
	tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
	tmake_file="${tmake_file} ${cpu_type}/t-lse"
	tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
	tmake_file="${tmake_file} t-dfprules"
	;;
alpha*-*-linux*)
	tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee t-crtfm alpha/t-linux"
	extra_parts="$extra_parts crtfastmath.o"
	md_unwind_header=alpha/linux-unwind.h
	;;
alpha*-*-freebsd*)
	tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee t-crtfm"
	extra_parts="$extra_parts crtbeginT.o crtfastmath.o"
	;;
alpha*-*-netbsd*)
	tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee"
	;;
alpha*-*-openbsd*)
	tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee"
	;;
alpha64-dec-*vms*)
	tmake_file="$tmake_file alpha/t-alpha alpha/t-ieee alpha/t-vms t-slibgcc-vms"
	extra_parts="$extra_parts vms-dwarf2.o vms-dwarf2eh.o"
	md_unwind_header=alpha/vms-unwind.h
	;;
alpha*-dec-*vms*)
	tmake_file="$tmake_file alpha/t-alpha alpha/t-ieee alpha/t-vms t-slibgcc-vms"
	extra_parts="$extra_parts vms-dwarf2.o vms-dwarf2eh.o"
	md_unwind_header=alpha/vms-unwind.h
	;;
amdgcn*-*-amdhsa)
	tmake_file="$tmake_file gcn/t-amdgcn"
	extra_parts="crt0.o"
	;;
arc*-*-elf*)
	tmake_file="arc/t-arc"
	extra_parts="crti.o crtn.o crtend.o crtbegin.o crtendS.o crtbeginS.o"
	extra_parts="$extra_parts crttls.o"
	;;
arc*-*-linux*)
	tmake_file="${tmake_file} t-slibgcc-libgcc t-slibgcc-nolc-override arc/t-arc-uClibc arc/t-arc"
	extra_parts="$extra_parts crti.o crtn.o"
	extra_parts="$extra_parts crttls.o"
	md_unwind_header=arc/linux-unwind.h
	;;
arm-wrs-vxworks7*)
	tmake_file="$tmake_file arm/t-arm arm/t-elf arm/t-bpabi arm/t-vxworks7"
        tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
	tm_file="$tm_file arm/bpabi-lib.h"
	unwind_header=config/arm/unwind-arm.h
	extra_parts="$extra_parts crti.o crtn.o"
	;;
arm*-*-freebsd*)                # ARM FreeBSD EABI
	tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix arm/t-elf"
	tmake_file="${tmake_file} arm/t-bpabi arm/t-freebsd"
	tm_file="${tm_file} arm/bpabi-lib.h"
	unwind_header=config/arm/unwind-arm.h
	tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
	;;
arm*-*-fuchsia*)
	tmake_file="${tmake_file} arm/t-arm arm/t-elf arm/t-bpabi"
	tmake_file="${tmake_file} arm/tsoftfp t-softfp"
	tm_file="${tm_file} arm/bpabi-lib.h"
	unwind_header=config/arm/unwind-arm.h
	;;
arm*-*-netbsdelf*)
	tmake_file="$tmake_file arm/t-arm"
	case ${host} in
	  arm*-*-netbsdelf-*eabi*)
	    tmake_file="${tmake_file} arm/t-netbsd-eabi"
	    unwind_header=config/arm/unwind-arm.h
	    ;;
	  *)
	    tmake_file="${tmake_file} arm/t-netbsd t-slibgcc-gld-nover"
	    ;;
	esac
	;;
arm*-*-linux* | arm*-*-uclinuxfdpiceabi)
	tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix t-crtfm"
	tmake_file="${tmake_file} arm/t-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc"
	tm_file="$tm_file arm/bpabi-lib.h"
	unwind_header=config/arm/unwind-arm.h
	tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
	extra_parts="$extra_parts crtfastmath.o"
	;;
arm*-*-uclinux*)		# ARM ucLinux
	tmake_file="${tmake_file} t-fixedpoint-gnu-prefix t-crtfm"
	tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
	tmake_file="${tmake_file} arm/t-bpabi"
	tm_file="$tm_file arm/bpabi-lib.h"
	unwind_header=config/arm/unwind-arm.h
	extra_parts="$extra_parts crti.o crtn.o"
	;;
arm*-*-phoenix*)
	tmake_file="t-hardfp t-softfp arm/t-arm arm/t-elf arm/t-softfp arm/t-phoenix"
	tmake_file="${tmake_file} arm/t-bpabi"
	tm_file="$tm_file arm/bpabi-lib.h"
	extra_parts="crtbegin.o crtend.o crti.o crtn.o"
	unwind_header=config/arm/unwind-arm.h
	;;
arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
	tmake_file="${tmake_file} arm/t-arm arm/t-elf t-fixedpoint-gnu-prefix"
	tm_file="$tm_file arm/bpabi-lib.h"
	case ${host} in
	arm*-*-eabi* | arm*-*-rtems*)
	  tmake_file="${tmake_file} arm/t-bpabi t-crtfm"
	  extra_parts="crtbegin.o crtend.o crti.o crtn.o"
	  ;;
	arm*-*-symbianelf*)
	  tmake_file="${tmake_file} arm/t-symbian t-slibgcc-nolc-override"
	  tm_file="$tm_file arm/symbian-lib.h"
	  # Symbian OS provides its own startup code.
	  ;;
	esac
	tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
	extra_parts="$extra_parts crtfastmath.o"
	unwind_header=config/arm/unwind-arm.h
	;;
avr-*-*)
	# Make HImode functions for AVR
	tmake_file="${cpu_type}/t-avr t-fpbit"
	# Make some DFmode functions from libf7, part of avr-libgcc.
	# This must be prior to adding t-avrlibc.
	case "y${with_libf7}" in
	    yno)
	        # No libf7 support.
	        ;;
	    ylibgcc)
		tmake_file="$tmake_file ${cpu_type}/libf7/t-libf7"
		;;
	    ymath)
		tmake_file="$tmake_file ${cpu_type}/libf7/t-libf7-math"
		tmake_file="$tmake_file ${cpu_type}/libf7/t-libf7"
		;;
	    ymath-symbols | yyes | y)
		tmake_file="$tmake_file ${cpu_type}/libf7/t-libf7-math-symbols"
		tmake_file="$tmake_file ${cpu_type}/libf7/t-libf7-math"
		tmake_file="$tmake_file ${cpu_type}/libf7/t-libf7"
		;;
	    *)
		echo "Error: --with-libf7=${with_libf7} but can only be used with: 'libgcc', 'math', 'math-symbols', 'yes', 'no'" 1>&2
		exit 1
		;;
	esac
	if test x${with_avrlibc} != xno; then
	    tmake_file="$tmake_file ${cpu_type}/t-avrlibc"
	fi
	tm_file="$tm_file avr/avr-lib.h"
	if test x${with_fixed_point} = xno; then
	    fixed_point=no
	fi
	;;
bfin*-elf*)
	tmake_file="bfin/t-bfin bfin/t-crtlibid bfin/t-crtstuff t-libgcc-pic t-fdpbit"
	extra_parts="$extra_parts crtbeginS.o crtendS.o crti.o crtn.o crtlibid.o"
        ;;
bfin*-uclinux*)
	tmake_file="bfin/t-bfin bfin/t-crtlibid bfin/t-crtstuff t-libgcc-pic t-fdpbit"
	extra_parts="$extra_parts crtbeginS.o crtendS.o crtlibid.o"
	md_unwind_header=bfin/linux-unwind.h
        ;;
bfin*-linux-uclibc*)
	tmake_file="$tmake_file bfin/t-bfin bfin/t-crtstuff t-libgcc-pic t-fdpbit bfin/t-linux"
	# No need to build crtbeginT.o on uClibc systems.  Should probably
	# be moved to the OS specific section above.
	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
	md_unwind_header=bfin/linux-unwind.h
	;;
bfin*-rtems*)
	tmake_file="$tmake_file bfin/t-bfin t-fdpbit"
	extra_parts="$extra_parts crti.o crtn.o"
	;;
bfin*-*)
	tmake_file="$tmake_file bfin/t-bfin t-fdpbit"
	extra_parts="crtbegin.o crtend.o crti.o crtn.o"
        ;;
bpf-*-*)
        tmake_file="$tmake_file ${cpu_type}/t-${cpu_type}"
        extra_parts="crti.o crtn.o"
	;;
cris-*-elf)
	tmake_file="$tmake_file cris/t-cris t-softfp-sfdf t-softfp cris/t-elfmulti"
	;;
csky-*-elf*)
	tmake_file="csky/t-csky t-fdpbit"
	extra_parts="crtbegin.o crtend.o crti.o crtn.o"
	;;
csky-*-linux*)
	tmake_file="$tmake_file csky/t-csky t-slibgcc-libgcc t-fdpbit csky/t-linux-csky"
	extra_parts="$extra_parts crti.o crtn.o"
	md_unwind_header=csky/linux-unwind.h
	;;
epiphany-*-elf* | epiphany-*-rtems*)
	tmake_file="$tmake_file epiphany/t-epiphany t-fdpbit epiphany/t-custom-eqsf"
	extra_parts="$extra_parts crti.o crtint.o crtrunc.o crtm1reg-r43.o crtm1reg-r63.o crtn.o"
	;;
fr30-*-elf)
	tmake_file="$tmake_file fr30/t-fr30 t-fdpbit"
	extra_parts="$extra_parts crti.o crtn.o"
	;;
frv-*-elf)
	tmake_file="$tmake_file frv/t-frv t-fdpbit"
	tm_file="$tm_file frv/elf-lib.h frv/frv-abi.h"
	# Don't use crtbegin.o, crtend.o.
	extra_parts="frvbegin.o frvend.o"
	;;
frv-*-*linux*)
	tmake_file="$tmake_file frv/t-frv frv/t-linux t-fdpbit"
	tm_file="$tm_file frv/elf-lib.h frv/frv-abi.h"
	;;
ft32-*-elf)
	tmake_file="ft32/t-ft32 t-softfp-sfdf t-softfp-excl t-softfp"
	extra_parts="$extra_parts crti.o crti-hw.o crtn.o"
	;;
h8300-*-elf*)
	tmake_file="$tmake_file h8300/t-h8300 t-fpbit"
	tm_file="$tm_file h8300/h8300-lib.h"
	extra_parts="$extra_parts crti.o crtn.o"
	;;
h8300-*-linux*)
	tmake_file="t-linux h8300/t-linux t-softfp-sfdf t-softfp"
	tm_file="$tm_file h8300/h8300-lib.h"
	;;
hppa*64*-*-linux*)
	tmake_file="$tmake_file pa/t-linux64 pa/t-dimode"
	tmake_file="$tmake_file pa/t-softfp-sfdftf t-softfp"
	extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
	;;
hppa*-*-linux*)
	tmake_file="$tmake_file pa/t-linux t-slibgcc-libgcc"
	# Set the libgcc version number
	if test x$ac_cv_sjlj_exceptions = xyes; then
	    tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver"
	else
	    tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
	fi
	extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
	md_unwind_header=pa/linux-unwind.h
	;;
hppa*64*-*-hpux11*)
	tmake_file="$tmake_file pa/t-hpux pa/t-pa64 pa/t-dimode"
	tmake_file="$tmake_file pa/t-stublib t-libgcc-pic t-slibgcc"
	# Set the libgcc version number
	if test x$ac_cv_sjlj_exceptions = xyes; then
	    tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver"
	else
	    tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
	fi
	tmake_file="$tmake_file pa/t-slibgcc-hpux t-slibgcc-hpux"
	tmake_file="$tmake_file pa/t-softfp-sfdftf t-softfp"
	tm_file="$tm_file pa/pa64-hpux-lib.h"
	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o \
		     libgcc_stub.a"
	md_unwind_header=pa/hpux-unwind.h
	;;
hppa*-*-openbsd*)
	tmake_file="$tmake_file pa/t-openbsd"
	;;
hppa*-*-netbsd*)
	tmake_file="$tmake_file pa/t-netbsd"
	;;
i[34567]86-*-darwin*)
	tmake_file="$tmake_file i386/t-crtpc t-crtfm i386/t-msabi"
	tm_file="$tm_file i386/darwin-lib.h"
	extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
	;;
x86_64-*-darwin*)
	tmake_file="$tmake_file i386/t-crtpc t-crtfm i386/t-msabi"
	tm_file="$tm_file i386/darwin-lib.h"
	extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
	;;
i[34567]86-*-elfiamcu)
	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"
	;;
i[34567]86-*-elf*)
	tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic"
	;;
x86_64-*-elf* | x86_64-*-rtems*)
	tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic"
	case ${host} in
	  x86_64-*-rtems*)
	    extra_parts="$extra_parts crti.o crtn.o"
	    ;;
	esac
	;;
x86_64-*-fuchsia*)
	tmake_file="$tmake_file t-libgcc-pic"
	;;
i[34567]86-*-dragonfly*)
	tmake_file="${tmake_file} i386/t-dragonfly i386/t-crtstuff"
	md_unwind_header=i386/dragonfly-unwind.h
	;;
x86_64-*-dragonfly*)
	tmake_file="${tmake_file} i386/t-dragonfly i386/t-crtstuff"
	md_unwind_header=i386/dragonfly-unwind.h
	;;
i[34567]86-*-freebsd*)
	tmake_file="${tmake_file} i386/t-freebsd i386/t-crtstuff"
	md_unwind_header=i386/freebsd-unwind.h
	;;
x86_64-*-freebsd*)
	tmake_file="${tmake_file} i386/t-freebsd i386/t-crtstuff"
	md_unwind_header=i386/freebsd-unwind.h
	;;
i[34567]86-*-netbsdelf*)
	tmake_file="${tmake_file} i386/t-crtstuff"
	;;
x86_64-*-netbsd*)
	tmake_file="${tmake_file} i386/t-crtstuff"
	;;
i[34567]86-*-openbsd*)
	;;
x86_64-*-openbsd*)
	;;
i[34567]86-*-linux*)
	extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
	tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules"
	tm_file="${tm_file} i386/elf-lib.h"
	md_unwind_header=i386/linux-unwind.h
	;;
i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-kopensolaris*-gnu)
	extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
	tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules"
	tm_file="${tm_file} i386/elf-lib.h"
	;;
i[34567]86-*-gnu*)
	extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
	tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules"
	tm_file="${tm_file} i386/elf-lib.h"
	md_unwind_header=i386/gnu-unwind.h
	;;
x86_64-*-linux*)
	extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
	tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules"
	tm_file="${tm_file} i386/elf-lib.h"
	md_unwind_header=i386/linux-unwind.h
	;;
x86_64-*-kfreebsd*-gnu)
	extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
	tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules"
	tm_file="${tm_file} i386/elf-lib.h"
	;;
i[34567]86-pc-msdosdjgpp*)
	;;
i[34567]86-*-lynxos*)
	;;
i[34567]86-*-nto-qnx*)
	tmake_file="$tmake_file i386/t-nto t-libgcc-pic"
	extra_parts=crtbegin.o
	;;
i[34567]86-*-rtems*)
	tmake_file="$tmake_file i386/t-crtstuff t-softfp-sfdftf i386/32/t-softfp i386/t-softfp t-softfp"
	extra_parts="$extra_parts crti.o crtn.o"
	;;
i[34567]86-*-solaris2* | x86_64-*-solaris2*)
	tmake_file="$tmake_file i386/t-crtpc t-crtfm i386/t-msabi"
	extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
	tm_file="${tm_file} i386/elf-lib.h"
	md_unwind_header=i386/sol2-unwind.h
	;;
i[4567]86-wrs-vxworks*|x86_64-wrs-vxworks*)
	;;
i[34567]86-*-cygwin*)
	extra_parts="crtbegin.o crtbeginS.o crtend.o crtfastmath.o"
	if test x$enable_vtable_verify = xyes; then
		extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o"
	fi
	# This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
	if test x$ac_cv_sjlj_exceptions = xyes; then
		tmake_eh_file="i386/t-sjlj-eh"
	else
		tmake_eh_file="i386/t-dw2-eh"
	fi
	# Shared libgcc DLL install dir depends on cross/native build.
	if test x${build} = x${host} ; then
		tmake_dlldir_file="i386/t-dlldir"
	else
		tmake_dlldir_file="i386/t-dlldir-x"
	fi
	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"
	;;
x86_64-*-cygwin*)
	extra_parts="crtbegin.o crtbeginS.o crtend.o crtfastmath.o"
	if test x$enable_vtable_verify = xyes; then
		extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o"
	fi
	# This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
	if test x$ac_cv_sjlj_exceptions = xyes; then
		tmake_eh_file="i386/t-sjlj-eh"
	elif test "${host_address}" = 32; then
	        # biarch -m32 with --disable-sjlj-exceptions
	     	tmake_eh_file="i386/t-dw2-eh"
	else
		tmake_eh_file="i386/t-seh-eh"
	fi
	# Shared libgcc DLL install dir depends on cross/native build.
	if test x${build} = x${host} ; then
		tmake_dlldir_file="i386/t-dlldir"
	else
		tmake_dlldir_file="i386/t-dlldir-x"
	fi
	# FIXME - dj - t-chkstk used to be in here, need a 64-bit version of that
	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"
	;;
i[34567]86-*-mingw*)
	extra_parts="crtbegin.o crtend.o crtfastmath.o"
	if test x$enable_vtable_verify = xyes; then
		extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o"
	fi
	case ${target_thread_file} in
	  win32)
	    tmake_file="$tmake_file i386/t-gthr-win32"
	    ;;
	  posix)
	    tmake_file="i386/t-mingw-pthread $tmake_file"
	    ;;
	  mcf)
	    tmake_file="i386/t-mingw-mcfgthread $tmake_file"
	    ;;
	esac
	# This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
	if test x$ac_cv_sjlj_exceptions = xyes; then
		tmake_eh_file="i386/t-sjlj-eh"
	else
		tmake_eh_file="i386/t-dw2-eh"
		md_unwind_header=i386/w32-unwind.h
	fi
	# Shared libgcc DLL install dir depends on cross/native build.
	if test x${build} = x${host} ; then
		tmake_dlldir_file="i386/t-dlldir"
	else
		tmake_dlldir_file="i386/t-dlldir-x"
	fi
	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"
	;;
x86_64-*-mingw*)
	case ${target_thread_file} in
	  win32)
	    tmake_file="$tmake_file i386/t-gthr-win32"
	    ;;
	  posix)
	    tmake_file="i386/t-mingw-pthread $tmake_file"
	    ;;
	  mcf)
	    tmake_file="i386/t-mingw-mcfgthread $tmake_file"
	    ;;
	esac
	# This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
	if test x$ac_cv_sjlj_exceptions = xyes; then
		tmake_eh_file="i386/t-sjlj-eh"
	elif test "${host_address}" = 32; then
	        # biarch -m32 with --disable-sjlj-exceptions
	     	tmake_eh_file="i386/t-dw2-eh"
		md_unwind_header=i386/w32-unwind.h
	else
		tmake_eh_file="i386/t-seh-eh"
	fi
	# Shared libgcc DLL install dir depends on cross/native build.
	if test x${build} = x${host} ; then
		tmake_dlldir_file="i386/t-dlldir"
	else
		tmake_dlldir_file="i386/t-dlldir-x"
	fi
	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"
	extra_parts="$extra_parts crtbegin.o crtend.o crtfastmath.o"
	if test x$enable_vtable_verify = xyes; then
		extra_parts="$extra_parts vtv_start.o vtv_end.o vtv_start_preinit.o vtv_end_preinit.o"
	fi
	;;
ia64*-*-elf*)
	extra_parts="$extra_parts crtbeginS.o crtendS.o crtfastmath.o"
	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"
	;;
ia64*-*-freebsd*)
	extra_parts="$extra_parts crtfastmath.o"
	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"
	;;
ia64*-*-linux*)
	# Don't use crtbeginT.o from *-*-linux* default.
	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
	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"
	if test x$with_system_libunwind != xyes ; then
		tmake_file="${tmake_file} t-libunwind-elf ia64/t-linux-libunwind"
	fi
	md_unwind_header=ia64/linux-unwind.h
	;;
ia64*-*-hpux*)
	tmake_file="ia64/t-ia64 ia64/t-ia64-elf ia64/t-hpux t-slibgcc ia64/t-slibgcc-hpux t-slibgcc-hpux"
	;;
ia64-hp-*vms*)
	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"
	extra_parts="$extra_parts crtinitS.o"
	md_unwind_header=ia64/vms-unwind.h
	;;
iq2000*-*-elf*)
	tmake_file="iq2000/t-iq2000 t-fdpbit"
	# Don't use default.
	extra_parts=
        ;;
lm32-*-elf*)
        extra_parts="$extra_parts crti.o crtn.o"
        tmake_file="lm32/t-lm32 lm32/t-elf t-softfp-sfdf t-softfp"
	;;
lm32-*-rtems*)
        tmake_file="$tmake_file lm32/t-lm32 lm32/t-elf t-softfp-sfdf t-softfp"
        extra_parts="$extra_parts crti.o crtn.o"
	;;
lm32-*-uclinux*)
        extra_parts="$extra_parts crtbegin.o crtendS.o crtbeginT.o"
        tmake_file="lm32/t-lm32 lm32/t-uclinux t-libgcc-pic t-softfp-sfdf t-softfp"
	;;
loongarch*-*-linux*)
	extra_parts="$extra_parts crtfastmath.o"
	tmake_file="${tmake_file} t-crtfm loongarch/t-crtstuff"
	case ${host} in
	  *)
	    tmake_file="${tmake_file} t-slibgcc-libgcc"
	    ;;
	esac
	md_unwind_header=loongarch/linux-unwind.h
	;;
m32r-*-elf*)
	tmake_file="$tmake_file m32r/t-m32r t-fdpbit"
	extra_parts="$extra_parts crtinit.o crtfini.o"
 	;;
m32rle-*-elf*)
	tmake_file=t-fdpbit
	;;
m68k-*-elf* | fido-*-elf)
	tmake_file="$tmake_file m68k/t-floatlib"
	;;
m68k*-*-netbsdelf*)
	;;
m68k*-*-openbsd*)
	;;
m68k-*-uclinux*)	# Motorola m68k/ColdFire running uClinux with uClibc
	tmake_file="$tmake_file m68k/t-floatlib m68k/t-linux"
	md_unwind_header=m68k/linux-unwind.h
	;;
m68k-*-linux*)			# Motorola m68k's running GNU/Linux
				# with ELF format using glibc 2
				# aka the GNU/Linux C library 6.
	tmake_file="$tmake_file m68k/t-floatlib m68k/t-linux"
	# If not configured with setjmp/longjmp exceptions, bump the
	# libgcc version number.
	if test x$ac_cv_sjlj_exceptions != xyes; then
	    tmake_file="$tmake_file m68k/t-slibgcc-elf-ver"
	fi
	md_unwind_header=m68k/linux-unwind.h
	;;
m68k-*-rtems*)
	tmake_file="$tmake_file m68k/t-floatlib"
	extra_parts="$extra_parts crti.o crtn.o"
	;;
mcore-*-elf)
	tmake_file="mcore/t-mcore t-fdpbit"
	extra_parts="$extra_parts crti.o crtn.o"
	;;
microblaze*-linux*)
	tmake_file="${tmake_file} microblaze/t-microblaze t-fdpbit t-slibgcc-libgcc"
	;;
microblaze*-*-elf)
	tmake_file="${tmake_file} microblaze/t-microblaze t-fdpbit"
	extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o crti.o crtn.o"
	;;
microblaze*-*-rtems*)
	tmake_file="${tmake_file} microblaze/t-microblaze t-fdpbit"
	extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o crti.o crtn.o"
	;;
mips*-*-netbsd*)			# NetBSD/mips, either endian.
	;;
mips*-*-linux*)				# Linux MIPS, either endian.
	extra_parts="$extra_parts crtfastmath.o"
	tmake_file="${tmake_file} t-crtfm"
	case ${host} in
	  mips64r5900* | mipsr5900*)
	    # The MIPS16 support code uses floating point
	    # instructions that are not supported on r5900.
	    ;;
	  *)
	    tmake_file="${tmake_file} mips/t-mips16 t-slibgcc-libgcc"
	    ;;
	esac
	md_unwind_header=mips/linux-unwind.h
	;;
mips*-sde-elf*)
	tmake_file="$tmake_file mips/t-crtstuff mips/t-mips16"
	case "${with_newlib}" in
	  yes)
	    # newlib / libgloss.
	    ;;
	  *)
	    # MIPS toolkit libraries.
	    tmake_file="$tmake_file mips/t-sdemtk"
	    ;;
	esac
	extra_parts="$extra_parts crti.o crtn.o"
	;;
mipsisa32-*-elf* | mipsisa32el-*-elf* | \
mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
mipsisa64-*-elf* | mipsisa64el-*-elf* | \
mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
	tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16"
	extra_parts="$extra_parts crti.o crtn.o"
	;;
mipsisa64sr71k-*-elf*)
	tmake_file="$tmake_file mips/t-elf mips/t-crtstuff t-fdpbit"
	extra_parts="$extra_parts crti.o crtn.o"
        ;;
mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
	tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16"
	extra_parts="$extra_parts crti.o crtn.o"
	;;
mips-*-elf* | mipsel-*-elf*)
	tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16"
	extra_parts="$extra_parts crti.o crtn.o"
	;;
mipsr5900-*-elf* | mipsr5900el-*-elf*)
	tmake_file="$tmake_file mips/t-elf mips/t-crtstuff"
	extra_parts="$extra_parts crti.o crtn.o"
	;;
mips64-*-elf* | mips64el-*-elf*)
	tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16"
	extra_parts="$extra_parts crti.o crtn.o"
	;;
mips64r5900-*-elf* | mips64r5900el-*-elf*)
	tmake_file="$tmake_file mips/t-elf mips/t-crtstuff"
	extra_parts="$extra_parts crti.o crtn.o"
	;;
mips64vr-*-elf* | mips64vrel-*-elf*)
	tmake_file="$tmake_file mips/t-elf mips/t-vr mips/t-crtstuff"
	extra_parts="$extra_parts crti.o crtn.o"
        ;;
mips64orion-*-elf* | mips64orionel-*-elf*)
	tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16"
	extra_parts="$extra_parts crti.o crtn.o"
	;;
mips*-*-rtems*)
	tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16"
	extra_parts="$extra_parts crti.o crtn.o"
	;;
mips-wrs-vxworks)
	;;
mipstx39-*-elf* | mipstx39el-*-elf*)
	tmake_file="$tmake_file mips/t-crtstuff mips/t-mips16"
	;;
mmix-knuth-mmixware)
	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
	tmake_file="${tmake_file} ${cpu_type}/t-${cpu_type}"
	;;
mn10300-*-*)
	tmake_file=t-fdpbit
	;;
moxie-*-elf | moxie-*-moxiebox* | moxie-*-uclinux* | moxie-*-rtems*)
	tmake_file="$tmake_file moxie/t-moxie t-softfp-sfdf t-softfp-excl t-softfp"
	extra_parts="$extra_parts crti.o crtn.o crtbegin.o crtend.o"
	;;
msp430-*-elf*)
	tmake_file="$tm_file t-crtstuff t-fdpbit msp430/t-msp430"
	extra_parts="crtbegin.o crtend.o crtbegin_no_eh.o crtend_no_eh.o"
	extra_parts="$extra_parts libmul_none.a libmul_16.a libmul_32.a libmul_f5.a"
	;;
nds32*-linux*)
	# Basic makefile fragment and extra_parts for crt stuff.
	# We also append c-isr library implementation.
	tmake_file="${tmake_file} t-slibgcc-libgcc"
	tmake_file="${tmake_file} nds32/t-nds32-glibc nds32/t-crtstuff t-softfp-sfdf t-softfp"
	# The header file of defining MD_FALLBACK_FRAME_STATE_FOR.
	md_unwind_header=nds32/linux-unwind.h
	# Append library definition makefile fragment according to --with-nds32-lib=X setting.
	case "${with_nds32_lib}" in
	"" | glibc | uclibc )
		;;
	*)
		echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: glibc uclibc" 1>&2
		exit 1
		;;
	esac
	;;
nds32*-elf*)
	# Basic makefile fragment and extra_parts for crt stuff.
	# We also append c-isr library implementation.
	tmake_file="${tmake_file} nds32/t-nds32 nds32/t-nds32-isr"
	extra_parts="crtbegin1.o crtend1.o libnds32_isr.a"
	# Append library definition makefile fragment according to --with-nds32-lib=X setting.
	case "${with_nds32_lib}" in
	"" | newlib)
		# Append library definition makefile fragment t-nds32-newlib.
		# Append 'soft-fp' software floating point make rule fragment provided by gcc.
		tmake_file="${tmake_file} nds32/t-nds32-newlib t-softfp-sfdf t-softfp"
		;;
	mculib)
		# Append library definition makefile fragment t-nds32-mculib.
		# The software floating point library is included in mculib.
		tmake_file="${tmake_file} nds32/t-nds32-mculib"
		;;
	*)
		echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib" 1>&2
		exit 1
		;;
	esac
	;;
nios2-*-linux*)
	tmake_file="$tmake_file nios2/t-nios2 nios2/t-linux t-libgcc-pic t-eh-dw2-dip t-slibgcc-libgcc"
	tm_file="$tm_file nios2/elf-lib.h"
	md_unwind_header=nios2/linux-unwind.h
	;;
nios2-*-*)
	tmake_file="$tmake_file nios2/t-nios2 t-softfp-sfdf t-softfp-excl t-softfp"
	extra_parts="$extra_parts crti.o crtn.o"
	;;
or1k-*-linux*)
	tmake_file="$tmake_file or1k/t-or1k or1k/t-crtstuff"
	tmake_file="$tmake_file t-softfp-sfdf t-softfp"
	md_unwind_header=or1k/linux-unwind.h
	;;
or1k-*-*)
	tmake_file="$tmake_file or1k/t-or1k or1k/t-crtstuff"
	tmake_file="$tmake_file t-softfp-sfdf t-softfp"
	;;
pdp11-*-*)
	tmake_file="pdp11/t-pdp11 t-fdpbit"
	;;
powerpc-*-darwin*)
	case ${host} in
	*-*-darwin9* | *-*-darwin[12][0-9]*)
	  # libSystem contains unwind information for signal frames since
	  # Darwin 9.
	  ;;
	*)
	  md_unwind_header=rs6000/darwin-unwind.h
	  ;;
	esac
	# We build the darwin10 EH shim for Rosetta (running on x86 machines).
	tm_file="$tm_file i386/darwin-lib.h"
	tmake_file="$tmake_file rs6000/t-ppc64-fp rs6000/t-ibm-ldouble"
	extra_parts="$extra_parts crt2.o crt3_2.o libef_ppc.a dw_ppc.o"
	;;
powerpc64-*-darwin*)
	# We build the darwin10 EH shim for Rosetta (running on x86 machines).
	tm_file="$tm_file i386/darwin-lib.h"
	tmake_file="$tmake_file rs6000/t-darwin64 rs6000/t-ibm-ldouble"
	extra_parts="$extra_parts crt2.o crt3_2.o libef_ppc.a dw_ppc.o"
	;;
powerpc*-*-freebsd*)
	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff rs6000/t-freebsd t-softfp-sfdf t-softfp-excl t-softfp"
	extra_parts="$extra_parts crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
	case ${host} in
	powerpc64*)
	  tmake_file="${tmake_file} rs6000/t-freebsd64"
	  md_unwind_header=rs6000/freebsd-unwind.h
	  ;;
	esac
	;;
powerpc-*-netbsd*)
	tmake_file="$tmake_file rs6000/t-netbsd rs6000/t-crtstuff"
	;;
powerpc-*-eabispe*)
	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
	extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
	;;
powerpc-*-eabisimaltivec*)
	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
	extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
	;;
powerpc-*-eabisim*)
	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
	extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
	;;
powerpc-*-elf*)
	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
	extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
	;;
powerpc-*-eabialtivec*)
	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
	extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
	;;
powerpc-xilinx-eabi*)
	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
	extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
	;;
powerpc-*-eabi*)
	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
	extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
	;;
powerpc-*-rtems*)
	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
	extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
	;;
powerpc*-*-linux*)
	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"
	tmake_file="${tmake_file} t-stack rs6000/t-stack-rs6000"
	case $ppc_fp_type in
	64)
		;;
	hard)
		tmake_file="${tmake_file} t-hardfp-sfdf t-hardfp"
		;;
	soft)
		tmake_file="${tmake_file} t-softfp-sfdf ${ppc_fp_compat} t-softfp"
		;;
	e500v1)
		tmake_file="${tmake_file} rs6000/t-e500v1-fp ${ppc_fp_compat} t-softfp t-hardfp"
		;;
	e500v2)
		tmake_file="${tmake_file} t-hardfp-sfdf rs6000/t-e500v2-fp ${ppc_fp_compat} t-softfp t-hardfp"
		;;
	*)
		echo "Unknown ppc_fp_type $ppc_fp_type" 1>&2
		exit 1
		;;
	esac

	if test $libgcc_cv_powerpc_float128 = yes; then
		tmake_file="${tmake_file} rs6000/t-float128"
	fi

	if test $libgcc_cv_powerpc_float128_hw = yes; then
		tmake_file="${tmake_file} rs6000/t-float128-hw"
	fi

	if test $libgcc_cv_powerpc_3_1_float128_hw = yes; then
		tmake_file="${tmake_file} rs6000/t-float128-p10-hw"
	fi

	extra_parts="$extra_parts ecrti.o ecrtn.o ncrti.o ncrtn.o"
	md_unwind_header=rs6000/linux-unwind.h
	;;
powerpc*-wrs-vxworks7*)
        tmake_file="$tmake_file rs6000/t-vxworks rs6000/t-savresfgpr t-dfprules rs6000/t-ppc64-fp"
        tmake_file="rs6000/t-crtstuff ${tmake_file}"
        case $ppc_fp_type in
        64)
                ;;
        hard)
                tmake_file="${tmake_file} t-hardfp-sfdf"
                ;;
        soft)
                tmake_file="${tmake_file} t-softfp-sfdf t-softfp"
                ;;
        *)
                echo "Unknown ppc_fp_type $ppc_fp_type" 1>&2
                exit 1
                ;;
        esac
        ;;
powerpc-wrs-vxworks*)
	tmake_file="$tmake_file rs6000/t-vxworks rs6000/t-savresfgpr t-fdpbit"
	;;
powerpc-*-lynxos*)
	tmake_file="$tmake_file rs6000/t-lynx t-fdpbit"
	;;
powerpcle-*-elf*)
	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
	extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
	;;
powerpcle-*-eabisim*)
	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
	extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
	;;
powerpcle-*-eabi*)
	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit"
	extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o"
	;;
pru-*-*)
	tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl t-softfp t-gnu-prefix pru/t-pru"
	tm_file="$tm_file pru/pru-abi.h"
	;;
riscv*-*-linux*)
	tmake_file="${tmake_file} riscv/t-softfp${host_address} t-softfp riscv/t-elf riscv/t-elf${host_address} t-slibgcc-libgcc"
	extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o crtendS.o crtbeginT.o"
	md_unwind_header=riscv/linux-unwind.h
	;;
riscv*-*-freebsd*)
	tmake_file="${tmake_file} riscv/t-softfp${host_address} t-softfp riscv/t-elf riscv/t-elf${host_address} t-slibgcc-libgcc"
	extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o crtendS.o crtbeginT.o"
	;;
riscv*-*-*)
	tmake_file="${tmake_file} riscv/t-softfp${host_address} t-softfp riscv/t-elf riscv/t-elf${host_address}"
	extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o"
	;;
rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
	md_unwind_header=rs6000/aix-unwind.h
	tmake_file="t-fdpbit rs6000/t-ppc64-fp rs6000/t-slibgcc-aix rs6000/t-ibm-ldouble"
	;;
rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
	md_unwind_header=rs6000/aix-unwind.h
	tmake_file="t-fdpbit rs6000/t-ppc64-fp rs6000/t-slibgcc-aix rs6000/t-ibm-ldouble"
	;;
rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*)
	md_unwind_header=rs6000/aix-unwind.h
	tmake_file="t-fdpbit rs6000/t-ppc64-fp rs6000/t-slibgcc-aix rs6000/t-ibm-ldouble rs6000/t-aix-cxa"
	extra_parts="crtcxa.o crtcxa_s.o crtdbase.o crtcxa_64.o crtcxa_64_s.o crtdbase_64.o"
	;;
rl78-*-elf)
	tmake_file="$tm_file t-fdpbit rl78/t-rl78"
	;;
rx-*-elf)
	tmake_file="rx/t-rx t-fdpbit"
	tm_file="$tm_file rx/rx-abi.h rx/rx-lib.h"
	;;
rx-*-linux*)
	tmake_file="rx/t-rx t-fdpbit"
	tm_file="$tm_file rx/rx-lib.h"
	;;
s390-*-linux*)
	tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux s390/32/t-floattodi t-stack s390/t-stack-s390"
	md_unwind_header=s390/linux-unwind.h
	;;
s390x-*-linux*)
	tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux t-stack s390/t-stack-s390"
	if test "${host_address}" = 32; then
	   tmake_file="${tmake_file} s390/32/t-floattodi"
	fi
	md_unwind_header=s390/linux-unwind.h
	;;
s390x-ibm-tpf*)
	tmake_file="${tmake_file} s390/t-crtstuff t-libgcc-pic t-eh-dw2-dip s390/t-tpf"
	extra_parts="crtbeginS.o crtendS.o"
	md_unwind_header=s390/tpf-unwind.h
	;;
sh-*-elf* | sh[12346l]*-*-elf*)
	tmake_file="$tmake_file sh/t-sh t-crtstuff-pic t-fdpbit"
	extra_parts="$extra_parts crt1.o crti.o crtn.o crtbeginS.o crtendS.o \
		libic_invalidate_array_4-100.a \
		libic_invalidate_array_4-200.a \
		libic_invalidate_array_4a.a \
		libgcc-Os-4-200.a libgcc-4-300.a"
	case ${host} in
	sh*-superh-elf)
		tmake_file="$tmake_file sh/t-superh"
		extra_parts="$extra_parts crt1-mmu.o gcrt1-mmu.o gcrt1.o"
 		;;
 	esac
	;;
sh-*-linux* | sh[2346lbe]*-*-linux*)
	tmake_file="${tmake_file} sh/t-sh t-slibgcc-libgcc sh/t-linux t-fdpbit"
	md_unwind_header=sh/linux-unwind.h
	;;
sh-*-netbsdelf* | shl*-*-netbsdelf*)
	tmake_file="$tmake_file sh/t-sh sh/t-netbsd"

	# NetBSD's C library includes a fast software FP library that
	# has support for setting/setting the rounding mode, exception
	# mask, etc.  Therefore, we don't want to include software FP
	# in libgcc.
	;;
sh-*-rtems*)
	tmake_file="$tmake_file sh/t-sh t-crtstuff-pic t-fdpbit"
	extra_parts="$extra_parts crt1.o crti.o crtn.o crtbeginS.o crtendS.o \
		libic_invalidate_array_4-100.a \
		libic_invalidate_array_4-200.a \
		libic_invalidate_array_4a.a \
		libgcc-Os-4-200.a libgcc-4-300.a"
	;;
sh-wrs-vxworks)
	tmake_file="$tmake_file sh/t-sh t-crtstuff-pic t-fdpbit"
	;;
sparc-*-netbsdelf*)
	;;
sparc64-*-openbsd*)
	;;
sparc-*-elf*)
	case ${host} in
	*-leon[3-9]*)
		;;
	*)
	  	tmake_file="sparc/t-softmul"
	  	;;
	esac
	tmake_file="${tmake_file} t-fdpbit t-crtfm"
	extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
	;;
sparc-*-linux*)		# SPARC's running GNU/Linux, libc6
	tmake_file="${tmake_file} t-crtfm"
	if test "${host_address}" = 64; then
		tmake_file="$tmake_file sparc/t-linux64"
	fi
	case ${host} in
	*-leon*)
		tmake_file="${tmake_file} t-fdpbit"
		;;
	*)
		tmake_file="${tmake_file} sparc/t-linux"
		;;
	esac
	case ${host} in
	*-leon[3-9]*)
		;;
	*)
		if test "${host_address}" = 32; then
			tmake_file="$tmake_file sparc/t-softmul"
		fi
	  	;;
	esac
	extra_parts="$extra_parts crtfastmath.o"
	md_unwind_header=sparc/linux-unwind.h
	;;
sparc-*-rtems*)
	tmake_file="$tmake_file sparc/t-elf sparc/t-softmul t-crtfm t-fdpbit"
	extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
	;;
sparc*-*-solaris2*)
	tmake_file="$tmake_file t-crtfm"
	extra_parts="$extra_parts crtfastmath.o"
	md_unwind_header=sparc/sol2-unwind.h
	;;
sparc64-*-elf*)
	tmake_file="${tmake_file} t-crtfm"
	extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
	;;
sparc64-*-rtems*)
	tmake_file="$tmake_file t-crtfm"
	extra_parts="$extra_parts crti.o crtn.o crtfastmath.o"
	;;
sparc-wrs-vxworks)
	;;
sparc64-*-freebsd*|ultrasparc-*-freebsd*)
	tmake_file="$tmake_file t-crtfm"
	extra_parts="$extra_parts crtfastmath.o"
	;;
sparc64-*-linux*)		# 64-bit SPARC's running GNU/Linux
	extra_parts="$extra_parts crtfastmath.o"
	tmake_file="${tmake_file} t-crtfm sparc/t-linux"
	if test "${host_address}" = 64; then
		tmake_file="${tmake_file} sparc/t-linux64"
	fi
	if test "${host_address}" = 32; then
		tmake_file="${tmake_file} sparc/t-softmul"
	fi
	md_unwind_header=sparc/linux-unwind.h
	;;
sparc64-*-netbsd*)
	;;
tic6x-*-uclinux)
	tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl t-softfp \
		c6x/t-elf  c6x/t-uclinux t-crtstuff-pic t-libgcc-pic \
		t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-gnu-prefix"
	tm_file="$tm_file c6x/c6x-abi.h"
	extra_parts="$extra_parts crtbeginS.o crtendS.o crti.o crtn.o"
	unwind_header=config/c6x/unwind-c6x.h
	;;
tic6x-*-elf)
	tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl t-softfp t-gnu-prefix c6x/t-elf"
	tm_file="$tm_file c6x/c6x-abi.h"
	extra_parts="$extra_parts crtbeginS.o crtendS.o crti.o crtn.o"
	unwind_header=config/c6x/unwind-c6x.h
	;;
v850*-*-*)
	tmake_file="${tmake_file} v850/t-v850 t-fdpbit"
	;;
vax-*-linux*)
	tmake_file="$tmake_file vax/t-linux"
	;;
vax-*-netbsdelf*)
	;;
vax-*-openbsd*)
	;;
visium-*-elf*)
        extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o"
        tmake_file="visium/t-visium t-fdpbit"
        ;;
xstormy16-*-elf)
	tmake_file="stormy16/t-stormy16 t-fdpbit"
	;;
xtensa*-*-elf*)
	tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-elf"
	extra_parts="$extra_parts crti.o crtn.o"
	;;
xtensa*-*-linux*)
	tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-linux t-slibgcc-libgcc"
	md_unwind_header=xtensa/linux-unwind.h
	;;
xtensa*-*-uclinux*)
	tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-linux t-slibgcc-libgcc"
	md_unwind_header=xtensa/linux-unwind.h
	extra_parts="$extra_parts crtbeginS.o crtbeginT.o crtendS.o"
	;;
am33_2.0-*-linux*)
	# Don't need crtbeginT.o from *-*-linux* default.
	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
	tmake_file="$tmake_file t-fdpbit"
	;;
m32c-*-elf*)
	tmake_file="$tmake_file m32c/t-m32c"
 	;;
nvptx-*)
	tmake_file="$tmake_file nvptx/t-nvptx"
	extra_parts="crt0.o"
	;;
*)
	echo "*** Configuration ${host} not supported" 1>&2
	exit 1
	;;
esac

case ${host} in
i[34567]86-*-* | x86_64-*-*)
	case ${host} in
	*-musl*)
		tmake_file="${tmake_file} i386/t-cpuinfo-static"
		;;
	*)
		tmake_file="${tmake_file} i386/t-cpuinfo"
		;;
	esac
	;;
esac

case ${host} in
i[34567]86-*-linux* | x86_64-*-linux* | \
  i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \
  i[34567]86-*-gnu*)
	tmake_file="${tmake_file} t-tls i386/t-linux i386/t-msabi t-slibgcc-libgcc"
	if test "$libgcc_cv_cfi" = "yes"; then
		tmake_file="${tmake_file} t-stack i386/t-stack-i386"
	fi
	;;
esac

case ${host} in
i[34567]86-*-elfiamcu | i[34567]86-*-rtems*)
	# These use soft-fp for SFmode and DFmode, not just TFmode.
	;;
i[34567]86-*-* | x86_64-*-*)
  	tmake_file="${tmake_file} t-softfp-tf"
	tmake_file="${tmake_file} i386/${host_address}/t-softfp i386/t-softfp t-softfp"
	;;
esac

case ${host} in
i[34567]86-*-linux* | x86_64-*-linux*)
	# Provide backward binary compatibility for 64bit Linux/x86.
	if test "${host_address}" = 64; then
		tmake_file="${tmake_file} i386/${host_address}/t-softfp-compat"
	fi
	tm_file="${tm_file} i386/value-unwind.h"
	;;
aarch64*-*-*)
	# ILP32 needs an extra header for unwinding
	tm_file="${tm_file} aarch64/value-unwind.h"
	;;
esac

# Setup to build a shared libgcc for VxWorks when that was requested,
# for library variants that support it (rtp only, code model not large).
#

case ${host} in
*vxworks*)
	case ${with_multisubdir}-${enable_shared} in
	*large*)
		;;
	*mrtp*-yes)
		tmake_file="${tmake_file} t-libgcc-pic"

		# Arrange to set a soname on libgcc_s so DT_NEEDED entries
		# for it refer to that alone. This ensures absence of path
		# components which would be incorrect as the runtime loader
		# on target has no visibility over the host filesystem.
		tmake_file="${tmake_file} t-slibgcc-gld-nover"
		tmake_file="${tmake_file} t-slibgcc"

		# t-slibgcc-libgcc is needed on at least aarch64 (for
		# lse) and at most harmless on other targets.
		tmake_file="${tmake_file} t-slibgcc-libgcc"

		tmake_file="${tmake_file} t-crtstuff-pic t-vxcrtstuffS"
		;;
	esac
	;;
esac

# The vxworks threads implementation relies on a few extra sources,
# which we arrange to add after everything else:

case ${target_thread_file} in
vxworks)
	case ${host} in
	*-*-vxworksae)
		tmake_file="${tmake_file} t-gthr-vxworksae"
		;;
	*-*-vxworks*)
		tmake_file="${tmake_file} t-gthr-vxworks"
		;;
	esac
esac

case ${host} in
*-*-musl*)
  # The gthr weak references are unsafe with static linking
  tmake_file="$tmake_file t-gthr-noweak"
  ;;
esac
