# libgcc host-specific configuration file.
# Copyright (C) 1997-2015 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
	;;
arc*-*-*)
	cpu_type=arc
	;;
arm*-*-*)
	cpu_type=arm
	;;
avr-*-*)
	cpu_type=avr
	;;    
bfin*-*)
	cpu_type=bfin
	;;
cr16-*-*)
	;;
crisv32-*-*)
	cpu_type=cris
	;;
fido-*-*)
	cpu_type=m68k
	;;
frv*)	cpu_type=frv
	;;
moxie*)	cpu_type=moxie
	;;
i[34567]86-*-*)
	cpu_type=i386
	;;
x86_64-*-*)
	cpu_type=i386
	;;
ia64-*-*)
	;;
hppa*-*-*)
	cpu_type=pa
	;;
lm32*-*-*)
	cpu_type=lm32
	;;
m32r*-*-*)
        cpu_type=m32r
        ;;
m68k-*-*)
	;;
mep*-*-*)
	;;
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
	;;
powerpc*-*-*)
	cpu_type=rs6000
	;;
rs6000*-*-*)
	;;
sparc64*-*-*)
	cpu_type=sparc
	;;
sparc*-*-*)
	cpu_type=sparc
	;;
spu*-*-*)
	cpu_type=spu
	;;
s390*-*-*)
	cpu_type=s390
	;;
# Note the 'l'; we need to be able to match e.g. "shle" or "shl".
sh[123456789lbe]*-*-*)
	cpu_type=sh
	;;
tilegx*-*-*)
	cpu_type=tilegx
	;;
tilepro*-*-*)
	cpu_type=tilepro
	;;
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 t-slibgcc-darwin"
  extra_parts="crt3.o crttms.o crttme.o"
  ;;
*-*-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
  ;;
*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
  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-slibgcc t-slibgcc-gld t-slibgcc-elf-ver"
  # NetBSD 1.7 and later are set up to use GCC's crtstuff for
  # ELF configurations.  We will clear extra_parts in the
  # a.out configurations.
  case ${host} in
    *-*-netbsd*1.[7-9]* | *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
      extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o"
      ;;
  esac
  ;;
*-*-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.x and 12 provide 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.1[0-9]* | x86_64-*-solaris2.1[0-9]*)
        # Solaris 10+/x86 provides crt1.o, crti.o, crtn.o, and gcrt1.o as
        # part of the base system.
        ;;
      sparc*-*-solaris2.1[0-9]*)
        # Solaris 10+/SPARC lacks crt1.o and gcrt1.o.
        extra_parts="$extra_parts crt1.o gcrt1.o"
        ;;
    esac
  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"
  ;;
*-*-vxworks*)
  tmake_file=t-vxworks
  ;;
*-*-elf)
  extra_parts="crtbegin.o crtend.o"
  ;;
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
  ;;
*)
  enable_execute_stack=enable-execute-stack-empty.c;
  ;;
esac

case ${host} in
aarch64*-*-elf)
	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-softfp t-softfp t-crtfm"
	;;
aarch64*-*-freebsd*)
	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"
	;;
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-softfp t-softfp t-crtfm"
	;;
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
	;;
arc*-*-elf*)
	tmake_file="arc/t-arc-newlib arc/t-arc"
	extra_parts="crti.o crtn.o crtend.o crtbegin.o crtendS.o crtbeginS.o libgmon.a crtg.o crtgend.o"
	;;
arc*-*-linux-uclibc*)
	tmake_file="${tmake_file} t-slibgcc-libgcc t-slibgcc-nolc-override arc/t-arc700-uClibc arc/t-arc"
	extra_parts="crti.o crtn.o crtend.o crtbegin.o crtendS.o crtbeginS.o libgmon.a crtg.o crtgend.o"
	;;
arm-wrs-vxworks)
	tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
	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*-*-netbsdelf*)
	tmake_file="$tmake_file arm/t-arm arm/t-netbsd t-slibgcc-gld-nover"
	;;
arm*-*-linux*)			# ARM GNU/Linux with ELF
	tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix"
	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"
	;;
arm*-*-uclinux*)		# ARM ucLinux
	tmake_file="${tmake_file} t-fixedpoint-gnu-prefix"
	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"
	  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"
	unwind_header=config/arm/unwind-arm.h
	;;
avr-*-rtems*)
	tmake_file="$tmake_file avr/t-avr avr/t-rtems t-fpbit"
	tm_file="$tm_file avr/avr-lib.h"
	# Don't use default.
	extra_parts=
	;;
avr-*-*)
	# Make HImode functions for AVR
	tmake_file="${cpu_type}/t-avr t-fpbit"
	if test x${with_avrlibc} != xno; then
	    tmake_file="$tmake_file ${cpu_type}/t-avrlibc"
	fi
	tm_file="$tm_file avr/avr-lib.h"
	;;
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"
        ;;
cr16-*-elf)
	tmake_file="${tmake_file} cr16/t-cr16 cr16/t-crtlibid t-fdpbit"
	extra_parts="$extra_parts crti.o crtn.o crtlibid.o"
        ;;
crisv32-*-elf)
	tmake_file="$tmake_file cris/t-cris t-softfp-sfdf t-softfp"
 	;;
cris-*-elf)
	tmake_file="$tmake_file cris/t-cris t-softfp-sfdf t-softfp cris/t-elfmulti"
	;;
cris-*-linux* | crisv32-*-linux*)
	tmake_file="$tmake_file cris/t-cris t-softfp-sfdf t-softfp cris/t-linux"
	;;
epiphany-*-elf*)
	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/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/frv-abi.h"
	;;
h8300-*-rtems*)
	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-*-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"
	;;
hppa*64*-*-linux*)
	tmake_file="$tmake_file pa/t-linux pa/t-linux64"
	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$enable_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[12]*-*-hpux10*)
	tmake_file="$tmake_file pa/t-hpux pa/t-hpux10 t-libgcc-pic t-slibgcc"
	# Set the libgcc version number
	if test x$enable_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"
	md_unwind_header=pa/hpux-unwind.h
	;;
hppa*64*-*-hpux11*)
	tmake_file="$tmake_file pa/t-hpux pa/t-pa64 pa/t-stublib t-libgcc-pic t-slibgcc"
	# Set the libgcc version number
	if test x$enable_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"
	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o \
		     libgcc_stub.a"
	md_unwind_header=pa/hpux-unwind.h
	;;
hppa[12]*-*-hpux11*)
	tmake_file="$tmake_file pa/t-hpux pa/t-stublib t-libgcc-pic t-slibgcc"
	# Set the libgcc version number
	if test x$enable_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"
	extra_parts="libgcc_stub.a"
	md_unwind_header=pa/hpux-unwind.h
	;;
hppa*-*-openbsd*)
	tmake_file="$tmake_file pa/t-openbsd"
	;;
i[34567]86-*-darwin*)
	tmake_file="$tmake_file i386/t-crtpc i386/t-crtfm"
	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 i386/t-crtfm"
	tm_file="$tm_file i386/darwin-lib.h"
	extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
	;;
i[34567]86-*-elf*)
	tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic"
	;;
x86_64-*-elf*)
	tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic 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*)
	;;
x86_64-*-netbsd*)
	tmake_file="${tmake_file} i386/t-crtstuff"
	;;
i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123])
	;;
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 i386/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-*-knetbsd*-gnu | i[34567]86-*-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 i386/t-crtfm i386/t-crtstuff t-dfprules"
	tm_file="${tm_file} i386/elf-lib.h"
	;;
x86_64-*-linux*)
	extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
	tmake_file="${tmake_file} i386/t-crtpc i386/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 | x86_64-*-knetbsd*-gnu)
	extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
	tmake_file="${tmake_file} i386/t-crtpc i386/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-sfdf t-softfp"
	extra_parts="$extra_parts crti.o crtn.o"
	;;
i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
	tmake_file="$tmake_file i386/t-crtpc i386/t-crtfm"
	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|i[4567]86-wrs-vxworksae)
	;;
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$enable_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 i386/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$enable_sjlj_exceptions = xyes; then
		tmake_eh_file="i386/t-sjlj-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 i386/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"
	    ;;
	esac
	# This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
	if test x$enable_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 i386/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"
	    ;;
	esac
	# This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
	if test x$enable_sjlj_exceptions = xyes; then
		tmake_eh_file="i386/t-sjlj-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
	tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-slibgcc-cygming i386/t-cygming i386/t-mingw32 t-dfprules i386/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
	;;
i[34567]86-*-interix[3-9]*)
	tmake_file="$tmake_file i386/t-interix i386/t-chkstk"
	;;
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"
	;;
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"
	;;
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"
	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"
	;;	
m32r-*-elf*)
	tmake_file=t-fdpbit
 	;;
m32r-*-rtems*)
	tmake_file="$tmake_file m32r/t-m32r t-fdpbit"
	extra_parts="$extra_parts crtinit.o crtfini.o"
	;;
m32rle-*-elf*)
	tmake_file=t-fdpbit
	;;
m32r-*-linux*)
	tmake_file="$tmake_file m32r/t-linux t-fdpbit"
 	;;
m32rle-*-linux*)
	tmake_file="$tmake_file m32r/t-linux 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 --enable-sjlj-exceptions, bump the
	# libgcc version number.
	if test x$enable_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"
	;;
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-slibgcc-libgcc"
	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"
	;;
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
	tmake_file="$tmake_file rs6000/t-ibm-ldouble"
	extra_parts="$extra_parts crt2.o"
	;;
powerpc64-*-darwin*)
	tmake_file="$tmake_file rs6000/t-darwin64 rs6000/t-ibm-ldouble"
	extra_parts="$extra_parts crt2.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"
	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
	extra_parts="$extra_parts ecrti.o ecrtn.o ncrti.o ncrtn.o"
	md_unwind_header=rs6000/linux-unwind.h
	;;
powerpc-wrs-vxworks|powerpc-wrs-vxworksae|powerpc-wrs-vxworksmils)
	tmake_file="$tmake_file rs6000/t-ppccomm 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"
	;;
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"
	;;
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"
	;;
s390-*-linux*)
	tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux s390/32/t-floattodi"
	md_unwind_header=s390/linux-unwind.h
	;;
s390x-*-linux*)
	tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux"
	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"
	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 sh64*-*-*)
		tmake_file="$tmake_file sh/t-sh64"
		;;
	esac
	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"
	case ${host} in sh64*-*-linux*)
		tmake_file="$tmake_file sh/t-sh64"
		;;
	esac
	md_unwind_header=sh/linux-unwind.h
	;;
sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
  sh64-*-netbsd* | sh64l*-*-netbsd*)
	tmake_file="$tmake_file sh/t-sh sh/t-netbsd"
	case ${host} in
	sh5*-*-netbsd* | sh64*-netbsd*)
		tmake_file="$tmake_file sh/t-sh64"
		;;
	esac
	# 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*)
	;;
spu-*-elf*)
	tmake_file="$tmake_file spu/t-elf t-libgcc-pic t-fdpbit"
	extra_parts="$extra_parts \
		libgcc_cachemgr.a libgcc_cachemgr_nonatomic.a \
		libgcc_cache8k.a libgcc_cache16k.a libgcc_cache32k.a \
		libgcc_cache64k.a libgcc_cache128k.a"
	;;
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
	;;
tilegx*-*-linux*)
	tmake_file="${tmake_file} tilegx/t-crtstuff t-softfp-sfdf tilegx/t-softfp t-softfp tilegx/t-tilegx"
	md_unwind_header=tilepro/linux-unwind.h
        ;;
tilepro*-*-linux*)
	tmake_file="${tmake_file} tilepro/t-crtstuff t-softfp-sfdf t-softfp tilepro/t-tilepro"
	md_unwind_header=tilepro/linux-unwind.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
	;;
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*|m32c-*-rtems*)
	tmake_file="$tmake_file m32c/t-m32c"
 	;;
mep*-*-*)
	tmake_file="mep/t-mep t-fdpbit"
	extra_parts="crtbegin.o crtend.o"
	;;
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-*-*)
	tmake_file="${tmake_file} i386/t-cpuinfo"
	;;
esac

case ${host} in
i[34567]86-*-linux* | x86_64-*-linux* | \
  i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \
  i[34567]86-*-knetbsd*-gnu | \
  i[34567]86-*-gnu*)
	tmake_file="${tmake_file} t-tls i386/t-linux"
	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-*-darwin* | x86_64-*-darwin* | \
  i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \
  i[34567]86-*-linux* | x86_64-*-linux* | \
  i[34567]86-*-gnu* | \
  i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]* | \
  i[34567]86-*-cygwin* | x86_64-*-cygwin* | \
  i[34567]86-*-mingw* | x86_64-*-mingw* | \
  i[34567]86-*-dragonfly* | x86_64-*-dragonfly* | \
  i[34567]86-*-freebsd* | x86_64-*-freebsd* | \
  i[34567]86-*-openbsd* | x86_64-*-openbsd*)
  	tmake_file="${tmake_file} t-softfp-tf"
	if test "${host_address}" = 32; then
		tmake_file="${tmake_file} i386/${host_address}/t-softfp"
	fi
	tmake_file="${tmake_file} 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"
	;;
esac
