# GCC target-specific configuration file.
# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
# 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 2, 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 COPYING.  If not, write to the Free
#Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
#02110-1301, USA.

# This is the GCC target-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 target-specific information.

# This file switches on the shell variable ${target}, and also uses the
# following shell variables:
#
#  with_*		Various variables as set by configure.
#
#  enable_threads	Either the name, yes or no depending on whether
#			threads support was requested.
#
#  default_use_cxa_atexit
#			  The default value for the $enable___cxa_atexit
#			variable.  enable___cxa_atexit needs to be set to
#			"yes" for the correct operation of C++ destructors
#			but it relies upon the presence of a non-standard C
#			library	function called	__cxa_atexit.
#			  Since not all C libraries provide __cxa_atexit the
#			default value of $default_use_cxa_atexit is set to
#			"no" except for targets which are known to be OK.
#
#  gas_flag		Either yes or no depending on whether GNU as was
#			requested.
#
#  gnu_ld_flag		Either yes or no depending on whether GNU ld was
#			requested.

# This file sets the following shell variables for use by the
# autoconf-generated configure script:
#
#  cpu_type		The name of the cpu, if different from the first
#			chunk of the canonical target name.
#
#  tm_defines		List of target macros to define for all compilations.
#
#  tm_file		A list of target macro files, if different from
#			"$cpu_type/$cpu_type.h". Usually it's constructed
#			per target in a way like this:
#			tm_file="${tm_file} dbxelf.h elfos.h svr4.h ${cpu_type.h}/elf.h"
#			Note that the preferred order is:
#			- specific target header "${cpu_type}/${cpu_type.h}"
#			- generic headers like dbxelf.h elfos.h, etc.
#			- specializing target headers like ${cpu_type.h}/elf.h
#			This helps to keep OS specific stuff out of the CPU
#			defining header ${cpu_type}/${cpu_type.h}.
#
#  tm_p_file		Location of file with declarations for functions
# LLVM LOCAL
#			in $out_file & $out_cxx_file
#
#  out_file		The name of the machine description C support
#			file, if different from "$cpu_type/$cpu_type.c".
# LLVM LOCAL
#  out_cxx_file		The name of the machine description C++ support file.
#
#  md_file		The name of the machine-description file, if
#			different from "$cpu_type/$cpu_type.md".
#
#  tmake_file		A list of machine-description-specific
#			makefile-fragments, if different from
#			"$cpu_type/t-$cpu_type".
#
#  extra_modes          The name of the file containing a list of extra
#                       machine modes, if necessary and different from
#                       "$cpu_type/$cpu_type-modes.def".
#
#  extra_objs		List of extra objects that should be linked into
#			the compiler proper (cc1, cc1obj, cc1plus)
#			depending on target.
#
#  extra_gcc_objs	List of extra objects that should be linked into
#			the compiler driver (gcc) depending on target.
#
#  extra_headers	List of used header files from the directory
#			config/${cpu_type}.
#
#  extra_passes		List of extra executables compiled for this target
#			machine, used for compiling from source to object.
#
#  extra_parts		List of extra object files that should be compiled
#			for this target machine.
#
#  extra_programs	Like extra_passes, but these are used when linking.
#
#  extra_options	List of target-dependent .opt files.
#
#  c_target_objs	List of extra target-dependent objects that be
#			linked into the C compiler only.
#
#  cxx_target_objs	List of extra target-dependent objects that be
#			linked into the C++ compiler only.
#
#  target_gtfiles       List of extra source files with type information.
#
#  xm_defines		List of macros to define when compiling for the
#			target machine.
#
#  xm_file		List of files to include when compiling for the
#			target machine.
#
#  use_collect2		Set to yes or no, depending on whether collect2
#			will be used.
#
#  target_cpu_default	Set to override the default target model.
#
#  gdb_needs_out_file_path
#			Set to yes if gdb needs a dir command with
#			`dirname $out_file`.
#
#  thread_file		Set to control which thread package to use.
#
#  gas			Set to yes or no depending on whether the target
#			system normally uses GNU as.
#
#  need_64bit_hwint	Set to yes if HOST_WIDE_INT must be 64 bits wide
#			for this target.  This is true iff this target
#			supports "long" or "wchar_t" wider than 32 bits.
#
#  configure_default_options
#			Set to an initializer for configure_default_options
#			in configargs.h, based on --with-cpu et cetera.
#
#  use_fixproto		Set to "yes" if fixproto should be run normally,
#			"no" if fixproto should never be run.

# The following variables are used in each case-construct to build up the
# outgoing variables:
#
#  gnu_ld		Set to yes or no depending on whether the target
#			system normally uses GNU ld.

out_file=
# LLVM LOCAL
out_cxx_file=
tmake_file=
extra_headers=
extra_passes=
extra_parts=
extra_programs=
extra_objs=
extra_gcc_objs=
extra_options=
c_target_objs=
cxx_target_objs=
tm_defines=
xm_defines=
# Set this to force installation and use of collect2.
use_collect2=
# Set this to override the default target model.
target_cpu_default=
# Set this if gdb needs a dir command with `dirname $out_file`
gdb_needs_out_file_path=
# Set this to control which thread package will be used.
thread_file=
# Reinitialize these from the flag values every loop pass, since some
# configure entries modify them.
gas="$gas_flag"
gnu_ld="$gnu_ld_flag"
default_use_cxa_atexit=no
target_gtfiles=
need_64bit_hwint=

# Default to not using fixproto.  Targets which need fixproto should
# specifically set this to 'yes'.
use_fixproto=no

# Don't carry these over build->host->target.  Please.
xm_file=
md_file=

# Obsolete configurations.
case ${target} in
   c4x-*		\
 | tic4x-*		\
 )
    if test "x$enable_obsolete" != xyes; then
      echo "*** Configuration ${target} is obsolete." >&2
      echo "*** Specify --enable-obsolete to build it anyway." >&2
      echo "*** Support will be REMOVED in the next major release of GCC," >&2
      echo "*** unless a maintainer comes forward." >&2
      exit 1
    fi;;
esac

# Unsupported targets list.  Do not put an entry in this list unless
# it would otherwise be caught by a more permissive pattern.  The list
# should be in alphabetical order.
case ${target} in
   alpha*-*-linux*libc1*		\
 | i[34567]86-sequent-sysv		\
 | i[34567]86-sequent-sysv[123]*	\
 | i[34567]86-go32-*			\
 | i[34567]86-*-go32*			\
 | m68k-*-linux*aout*			\
 | m68k-*-linux*libc1*			\
 | mips64orion*-*-rtems*		\
 | powerpc-*-linux*libc1*		\
 | sparc-*-linux*aout*			\
 | sparc-*-linux*libc1*			\
 | sparc-hal-solaris2*			\
 | thumb-*-*				\
 | *-*-linux*coff*			\
 | *-*-linux*oldld*			\
 | *-*-rtemsaout*			\
 | *-*-rtemscoff*			\
 | vax-*-vms*				\
 )
	echo "*** Configuration ${target} not supported" 1>&2
	exit 1
	;;
esac

# Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
# updated in each machine entry.  Also set default extra_headers for some
# machines.
tm_p_file=
cpu_type=`echo ${target} | sed 's/-.*$//'`
cpu_is_64bit=
case ${target} in
m32c*-*-*)
        cpu_type=m32c
	tmake_file=m32c/t-m32c
        ;;
alpha*-*-*)
	cpu_type=alpha
	need_64bit_hwint=yes
# LLVM LOCAL begin
	out_cxx_file=alpha/llvm-alpha.cpp
# LLVM LOCAL end                               
	;;
am33_2.0-*-linux*)
	cpu_type=mn10300
	;;
strongarm*-*-*)
	cpu_type=arm
# LLVM LOCAL begin
	out_cxx_file=arm/llvm-arm.cpp
# LLVM LOCAL end                               
	;;
arm*-*-*)
	cpu_type=arm
        # APPLE LOCAL ARM v7 support, merge from Codesourcery.
	extra_headers="mmintrin.h arm_neon.h arm_neon_std.h arm_neon_gcc.h"
# LLVM LOCAL begin
	out_cxx_file=arm/llvm-arm.cpp
# LLVM LOCAL end                               
	;;
bfin*-*)
	cpu_type=bfin
	;;
ep9312*-*-*)
	cpu_type=arm
# LLVM LOCAL begin
	out_cxx_file=arm/llvm-arm.cpp
# LLVM LOCAL end                               
	;;
frv*)	cpu_type=frv
	;;
xscale-*-*)
	cpu_type=arm
	extra_headers="mmintrin.h"
# LLVM LOCAL begin
	out_cxx_file=arm/llvm-arm.cpp
# LLVM LOCAL end                               
	;;
# APPLE LOCAL begin mainline
i[34567]86-*-*)
	cpu_type=i386
# LLVM LOCAL begin
	out_cxx_file=i386/llvm-i386.cpp
# LLVM LOCAL end                               
	# APPLE LOCAL begin 5612787 mainline sse4
	extra_headers="mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
		       pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
		       nmmintrin.h"
	# APPLE LOCAL end 5612787 mainline sse4
	;;
x86_64-*-*)
	cpu_type=i386
# LLVM LOCAL begin
	out_cxx_file=i386/llvm-i386.cpp
# LLVM LOCAL end                               
	# APPLE LOCAL begin 5612787 mainline sse4
	extra_headers="mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
		       pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
		       nmmintrin.h"
	# APPLE LOCAL end 5612787 mainline sse4
	need_64bit_hwint=yes
	;;
# APPLE LOCAL end mainline
ia64-*-*)
	extra_headers=ia64intrin.h
	need_64bit_hwint=yes
	;;
hppa*-*-* | parisc*-*-*)
	cpu_type=pa
	;;
m32r*-*-*)
        cpu_type=m32r
        ;;
m680[012]0-*-*)
	cpu_type=m68k
	extra_headers=math-68881.h
	;;
m68k-*-*)
	extra_headers=math-68881.h
	;;
mips*-*-*)
	cpu_type=mips
# LLVM LOCAL begin
	out_cxx_file=mips/llvm-mips.cpp
# LLVM LOCAL end                               
	need_64bit_hwint=yes
	;;
powerpc*-*-*)
	cpu_type=rs6000
	extra_headers="ppc-asm.h altivec.h spe.h"
	need_64bit_hwint=yes
	case x$with_cpu in
	    xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456]|xrs64a)
		cpu_is_64bit=yes
		;;
	esac
	;;
rs6000*-*-*)
	need_64bit_hwint=yes
	;;
score*-*-*)
	cpu_type=score
	;;
sparc64*-*-*)
	cpu_type=sparc
	need_64bit_hwint=yes
	;;
sparc*-*-*)
	cpu_type=sparc
	;;
spu*-*-*)
	cpu_type=spu
	need_64bit_hwint=yes
	;;
s390*-*-*)
	cpu_type=s390
	need_64bit_hwint=yes
	;;
# Note the 'l'; we need to be able to match e.g. "shle" or "shl".
sh[123456789lbe]*-*-*)
	cpu_type=sh
	need_64bit_hwint=yes
	;;
tic4x-*-*)
        cpu_type=c4x
        ;;
esac

tm_file=${cpu_type}/${cpu_type}.h
if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
then
	tm_p_file=${cpu_type}/${cpu_type}-protos.h
fi
extra_modes=
if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
then
	extra_modes=${cpu_type}/${cpu_type}-modes.def
fi
if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
then
	extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
fi

case ${target} in
x86_64-*-*)
	tm_file="i386/biarch64.h ${tm_file}"
	;;
esac
## LLVM LOCAL begin add dependency for llvm-i386-target.h
case ${target} in
x86_64-*-* | i686-*-* | i386-*-*)
	tm_file="i386/llvm-i386-target.h ${tm_file}"
	;;
esac
## LLVM LOCAL end

# On a.out targets, we need to use collect2.
case ${target} in
*-*-*aout*)
	use_collect2=yes
	;;
esac

# Common parts for widely ported systems.
case ${target} in
*-*-darwin*)
  tm_file="${tm_file} darwin.h"
  case ${target} in
  *-*-darwin9*)
    tm_file="${tm_file} darwin9.h"
    ;;
    # APPLE LOCAL begin .file/.loc 6349436
  *-*-darwin[12][0-9]*)
    tm_file="${tm_file} darwin9.h darwin10.h"
    ;;
    # APPLE LOCAL end .file/.loc 6349436
  esac
  tm_file="${tm_file} ${cpu_type}/darwin.h"
  tm_p_file="${tm_p_file} darwin-protos.h"
  # APPLE LOCAL 5681645
  tmake_file="t-darwin ${cpu_type}/t-darwin"
  target_gtfiles="\$(srcdir)/config/darwin.c"
  extra_options="${extra_options} darwin.opt"
  c_target_objs="darwin-c.o"
  cxx_target_objs="darwin-c.o"
  extra_objs="darwin.o"
 # APPLE LOCAL mainline 2007-06-14 5235474
  extra_gcc_objs="darwin-driver.o"
  default_use_cxa_atexit=yes
  case ${enable_threads} in
    "" | yes | posix) thread_file='posix' ;;
  esac
  ;;
*-*-freebsd[12] | *-*-freebsd[12].* | *-*-freebsd*aout*)
  # This is the place-holder for the generic a.out configuration
  # of FreeBSD.  No actual configuration resides here since
  # there was only ever a bare-bones ix86 configuration for
  # a.out and it exists solely in the machine-specific section.
  # This place-holder must exist to avoid dropping into
  # the generic ELF configuration of FreeBSD (i.e. it must be
  # ordered before that section).
  ;;
*-*-freebsd*)
  # This is the generic ELF configuration of FreeBSD.  Later
  # machine-specific sections may refine and add to this
  # configuration.
  #
  # Due to tm_file entry ordering issues that vary between cpu
  # architectures, we only define fbsd_tm_file to allow the
  # machine-specific section to dictate the final order of all
  # entries of tm_file with the minor exception that components
  # of the tm_file set here will always be of the form:
  #
  # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
  #
  # The machine-specific section should not tamper with this
  # ordering but may order all other entries of tm_file as it
  # pleases around the provided core setting.
  gas=yes
  gnu_ld=yes
  extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
  case ${target} in
    *-*-freebsd3 | *-*-freebsd[3].*)
      tm_defines="${tm_defines} FBSD_MAJOR=3" ;;
    *-*-freebsd4 | *-*-freebsd[4].*)
      tm_defines="${tm_defines} FBSD_MAJOR=4" ;;
    *-*-freebsd5 | *-*-freebsd[5].*)
      tm_defines="${tm_defines} FBSD_MAJOR=5" ;;
    *-*-freebsd6 | *-*-freebsd[6].*)
      tm_defines="${tm_defines} FBSD_MAJOR=6" ;;
    *-*-freebsd7 | *-*-freebsd[7].*)
      tm_defines="${tm_defines} FBSD_MAJOR=7" ;;
    *-*-freebsd8 | *-*-freebsd[8].*)
      tm_defines="${tm_defines} FBSD_MAJOR=8" ;;
    *-*-freebsd9 | *-*-freebsd[9].*)
      tm_defines="${tm_defines} FBSD_MAJOR=9" ;;
    *-*-freebsd10 | *-*-freebsd10.*)
      tm_defines="${tm_defines} FBSD_MAJOR=10" ;;
    *-*-freebsd11 | *-*-freebsd11.*)
      tm_defines="${tm_defines} FBSD_MAJOR=11" ;;
    *)
      echo 'Please update *-*-freebsd* in gcc/config.gcc'
      exit 1
      ;;
  esac
  tmake_file="t-slibgcc-elf-ver t-freebsd"
  case ${enable_threads} in
    no)
      fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
      ;;
    "" | yes | posix)
      thread_file='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 ${target} in
        *-*-freebsd[34] | *-*-freebsd[34].*)
          tmake_file="${tmake_file} t-slibgcc-nolc-override"
          ;;
      esac
      ;;
    *)
      echo 'Unknown thread configuration for FreeBSD'
      exit 1
      ;;
  esac
  fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h"
  ;;
*-*-linux*libc1* | *-*-linux*aout*)
  # Avoid the generic linux case.
  ;;
*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu)
  # Must come before *-*-gnu* (because of *-*-linux-gnu* systems).
  extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
  extra_options="${extra_options} linux.opt"
  gas=yes
  gnu_ld=yes
  case ${enable_threads} in
    "" | yes | posix) thread_file='posix' ;;
  esac
  tmake_file="t-slibgcc-elf-ver t-linux"
  case ${target} in
    *-*-*uclibc*)
      tm_defines="${tm_defines} UCLIBC_DEFAULT=1"
      ;;
    *)
      tm_defines="${tm_defines} UCLIBC_DEFAULT=0"
      ;;
  esac
  # Assume that glibc or uClibc are being used and so __cxa_atexit is provided.
  default_use_cxa_atexit=yes
  ;;
*-*-gnu*)
  # On the Hurd, the setup is just about the same on
  # each different CPU.  The specific machines that we
  # support are matched above and just set $cpu_type.
  tm_file="${cpu_type}/gnu.h"
  extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o"
  # GNU tools are the only tools.
  gas=yes
  gnu_ld=yes
  # These details are the same as for Linux.
  # But here we need a little extra magic.
  tmake_file="t-slibgcc-elf-ver t-linux t-gnu"
  case ${target} in
    alpha*)
      tm_file="${cpu_type}/${cpu_type}.h alpha/elf.h alpha/linux.h alpha/linux-elf.h gnu.h ${tm_file}"
      ;;
    i[34567]86-*-*)
      tm_file="${cpu_type}/${cpu_type}.h i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h i386/linux.h gnu.h ${tm_file}"
      ;;
  esac
  # Assume that glibc is being used and so __cxa_atexit is provided.
  default_use_cxa_atexit=yes
  ;;
*-*-netbsd*)
  tmake_file="t-slibgcc-elf-ver t-libc-ok t-netbsd t-libgcc-pic"
  gas=yes
  gnu_ld=yes

  # NetBSD 2.0 and later get POSIX threads enabled by default.
  # Allow them to be explicitly enabled on any other version.
  case ${enable_threads} in
    "")
      case ${target} in
        *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
          thread_file='posix'
          tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS"
          ;;
      esac
      ;;
    yes | posix)
      thread_file='posix'
      tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS"
      ;;
  esac

  # 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 ${target} in
    *-*-netbsd*1.[7-9]* | *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
      extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o"
      ;;
  esac

  # NetBSD 2.0 and later provide __cxa_atexit(), which we use by
  # default (unless overridden by --disable-__cxa_atexit).
  case ${target} in
    *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
      default_use_cxa_atexit=yes
      ;;
  esac
  ;;
*-*-openbsd*)
  tmake_file="t-libc-ok t-openbsd t-libgcc-pic"
  case ${enable_threads} in
    yes)
      thread_file='posix'
      tmake_file="${tmake_file} t-openbsd-thread"
      ;;
  esac
  case ${target} in
    *-*-openbsd2.*|*-*-openbsd3.[012])
      tm_defines="${tm_defines} HAS_LIBC_R=1" ;;
  esac
  ;;
*-*-rtems*)
  case ${enable_threads} in
    yes) thread_file='rtems' ;;
  esac
  ;;
*-*-vxworks*)
  tmake_file=t-vxworks
  tm_file="${tm_file} elfos.h svr4.h"
  xm_defines=POSIX
  extra_options="${extra_options} vxworks.opt"
  case ${enable_threads} in
    no) ;;
    "" | yes | vxworks) thread_file='vxworks' ;;
    *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
  esac
  ;;
*-*-elf)
  # Assume that newlib is being used and so __cxa_atexit is provided.
  default_use_cxa_atexit=yes
  ;;
esac

case ${target} in
# Support site-specific machine types.
*local*)
	rest=`echo ${target} | sed -e "s/$cpu_type-//"`
	tm_file=${cpu_type}/$rest.h
	if test -f $srcdir/config/${cpu_type}/xm-$rest.h
	then xm_file=${cpu_type}/xm-$rest.h
	fi
	if test -f $srcdir/config/${cpu_type}/t-$rest
	then tmake_file=${cpu_type}/t-$rest
	fi
	;;
alpha*-*-unicosmk*)
	use_collect2=yes
	tm_file="${tm_file} alpha/unicosmk.h"

	# Don't include t-ieee for now because we don't support that yet
	# tmake_file="alpha/t-ieee"
	tmake_file="alpha/t-unicosmk"
	use_fixproto=yes
	;;
alpha*-*-linux*)
	tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h"
	target_cpu_default="MASK_GAS"
	tmake_file="${tmake_file} alpha/t-crtfm alpha/t-alpha alpha/t-ieee alpha/t-linux"
	;;
alpha*-*-gnu*)
	target_cpu_default="MASK_GAS"
	tmake_file="${tmake_file} alpha/t-crtfm alpha/t-alpha alpha/t-ieee"
	;;
alpha*-*-freebsd*)
	tm_file="${tm_file} ${fbsd_tm_file} alpha/elf.h alpha/freebsd.h"
	target_cpu_default="MASK_GAS"
	tmake_file="${tmake_file} alpha/t-crtfm alpha/t-alpha alpha/t-ieee"
	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o"
	;;
alpha*-*-netbsd*)
	tm_file="${tm_file} netbsd.h alpha/elf.h netbsd-elf.h alpha/netbsd.h"
	target_cpu_default="MASK_GAS"
	tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee"
	;;
alpha*-*-openbsd*)
	tm_defines="${tm_defines} OBSD_NO_DYNAMIC_LIBRARIES OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
	tm_file="alpha/alpha.h openbsd.h alpha/openbsd.h"
	# default x-alpha is only appropriate for dec-osf.
	target_cpu_default="MASK_GAS"
	tmake_file="alpha/t-alpha alpha/t-ieee"
	;;
alpha*-dec-osf[45]*)
	if test x$stabs = xyes
	then
		tm_file="${tm_file} dbx.h"
	fi
	if test x$gas != xyes
	then
		extra_passes="mips-tfile mips-tdump"
	fi
	use_collect2=yes
	tmake_file="alpha/t-alpha alpha/t-ieee alpha/t-crtfm alpha/t-osf4"
	tm_file="${tm_file} alpha/osf.h"
	extra_headers=va_list.h
	case ${target} in
	  *-*-osf4*)
	    # Define TARGET_SUPPORT_ARCH except on 4.0a.
	    case ${target} in
		*-*-osf4.0a) ;;
		*) tm_defines="${tm_defines} TARGET_SUPPORT_ARCH=1"
	    esac
	    ;;
	  *-*-osf5*)
	    tm_file="${tm_file} alpha/osf5.h"
	    tm_defines="${tm_defines} TARGET_SUPPORT_ARCH=1"
	    ;;
	esac
	case ${enable_threads} in
	  "" | yes | posix)
	    thread_file='posix'
	    tmake_file="${tmake_file} alpha/t-osf-pthread"
	    ;;
	esac
	;;
alpha64-dec-*vms*)
	tm_file="${tm_file} alpha/vms.h alpha/vms64.h"
	xm_file="alpha/xm-vms.h"
	tmake_file="alpha/t-alpha alpha/t-vms alpha/t-vms64 alpha/t-ieee"
	prefix=/gnu
	local_prefix=/gnu
	;;
alpha*-dec-*vms*)
	tm_file="${tm_file} alpha/vms.h"
	xm_file=alpha/xm-vms.h
	tmake_file="alpha/t-alpha alpha/t-vms alpha/t-ieee"
	prefix=/gnu
	local_prefix=/gnu
	;;
arc-*-elf*)
	tm_file="dbxelf.h elfos.h svr4.h ${tm_file}"
	extra_parts="crtinit.o crtfini.o"
	use_fixproto=yes
	;;
arm-*-coff* | armel-*-coff*)
	tm_file="arm/semi.h arm/aout.h arm/arm.h arm/coff.h dbxcoff.h"
	tmake_file="arm/t-arm arm/t-arm-coff"
	;;
arm-semi-aof | armel-semi-aof)
	tm_file="arm/semiaof.h arm/aof.h arm/arm.h"
	tmake_file="arm/t-arm arm/t-semi"
	;;
arm-wrs-vxworks)
	tm_file="dbxelf.h elfos.h svr4.h vxworks.h arm/elf.h arm/aout.h arm/arm.h arm/vxworks.h"
	tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
	;;
arm*-*-freebsd*|strongarm*-*-freebsd*)
	tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h arm/aout.h arm/freebsd.h arm/arm.h"
	tmake_file="${tmake_file} arm/t-arm arm/t-strongarm-elf"
	;;
arm*-*-netbsdelf*)
	tm_file="dbxelf.h elfos.h netbsd.h netbsd-elf.h arm/elf.h arm/aout.h arm/arm.h arm/netbsd-elf.h"
	tmake_file="${tmake_file} arm/t-arm arm/t-netbsd"
	;;
arm*-*-netbsd*)
	tm_file="arm/aout.h arm/arm.h netbsd.h netbsd-aout.h arm/netbsd.h"
	tmake_file="t-netbsd arm/t-arm arm/t-netbsd"
	extra_parts=""
	use_collect2=yes
	;;
arm*-*-linux*)			# ARM GNU/Linux with ELF
	tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"
	tmake_file="${tmake_file} t-linux arm/t-arm"
	case ${target} in
	arm*-*-linux-*eabi)
	    tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
	    tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
  	    # The BPABI long long divmod functions return a 128-bit value in
	    # registers r0-r3.  Correctly modeling that requires the use of
	    # TImode.
	    need_64bit_hwint=yes
	    # The EABI requires the use of __cxa_atexit.
	    default_use_cxa_atexit=yes
	    ;;
	*)
	    tmake_file="$tmake_file arm/t-linux"
	    ;;
	esac
	tm_file="$tm_file arm/aout.h arm/arm.h"
	;;
arm*-*-uclinux*)		# ARM ucLinux
	tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/linux-gas.h arm/linux-elf.h arm/uclinux-elf.h"
	tmake_file="arm/t-arm arm/t-arm-elf"
	;;
arm*-*-ecos-elf)
	tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/ecos-elf.h"
	tmake_file="arm/t-arm arm/t-arm-elf"
	;;
arm*-*-eabi* | arm*-*-symbianelf* )
	# The BPABI long long divmod functions return a 128-bit value in
	# registers r0-r3.  Correctly modeling that requires the use of
	# TImode.
	need_64bit_hwint=yes
	default_use_cxa_atexit=yes
	tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
	tmake_file="arm/t-arm arm/t-arm-elf"
	case ${target} in
	arm*-*-eabi*)
	  tmake_file="${tmake_file} arm/t-bpabi"
	  ;;
	arm*-*-symbianelf*)
	  tm_file="${tm_file} arm/symbian.h"
	  # We do not include t-bpabi for Symbian OS because the system
	  # provides its own implementation of the BPABI functions.
	  tmake_file="${tmake_file} arm/t-symbian"
	  ;;
	esac
	tm_file="${tm_file} arm/aout.h arm/arm.h"
	;;
arm*-*-rtems*)
	tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/rtems-elf.h rtems.h"
	tmake_file="arm/t-arm arm/t-arm-elf t-rtems arm/t-rtems"
	;;
arm*-*-elf | ep9312-*-elf)
	tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h"
	tmake_file="arm/t-arm arm/t-arm-elf"
	;;
# APPLE LOCAL begin ARM darwin target
arm*-*-darwin*)
	extra_options="${extra_options} arm/darwin.opt"
        tm_file="${tm_file} arm/darwin.h"
        tmake_file="${tmake_file} arm/t-slibgcc-iphoneos"
	extra_headers="arm_neon.h arm_neon_std.h arm_neon_gcc.h"
        ;;
# APPLE LOCAL end ARM darwin target
arm*-wince-pe*)
	tm_file="arm/semi.h arm/aout.h arm/arm.h arm/coff.h dbxcoff.h arm/pe.h arm/wince-pe.h"
	tmake_file="arm/t-arm arm/t-wince-pe"
	extra_options="${extra_options} arm/pe.opt"
	extra_objs="pe.o"
	;;
arm-*-pe*)
	tm_file="arm/semi.h arm/aout.h arm/arm.h arm/coff.h dbxcoff.h arm/pe.h"
	tmake_file="arm/t-arm arm/t-pe"
	extra_options="${extra_options} arm/pe.opt"
	extra_objs="pe.o"
	;;
arm*-*-kaos*)
	tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h kaos.h arm/kaos-arm.h"
	tmake_file="arm/t-arm arm/t-arm-elf"
	;;
avr-*-rtems*)
	tm_file="avr/avr.h dbxelf.h avr/rtems.h rtems.h"
	tmake_file="avr/t-avr t-rtems avr/t-rtems"
	;;
avr-*-*)
	tm_file="avr/avr.h dbxelf.h"
	use_fixproto=yes
	;;
bfin*-elf*)
	tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h"
        tmake_file=bfin/t-bfin-elf
        use_collect2=no
        ;;
bfin*-uclinux*)
	tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/uclinux.h"
        tmake_file=bfin/t-bfin-elf
        use_collect2=no
        ;;
bfin*-rtems*)
	tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h"
	tmake_file="bfin/t-bfin t-rtems bfin/t-rtems"
        ;;
bfin*-*)
	tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h"
        tmake_file=bfin/t-bfin
        use_collect2=no
        ;;
c4x-*-rtems* | tic4x-*-rtems*)
	tmake_file="c4x/t-c4x t-rtems c4x/t-rtems"
	tm_file="c4x/c4x.h c4x/rtems.h rtems.h"
	c_target_objs="c4x-c.o"
	cxx_target_objs="c4x-c.o"
	;;
c4x-* | tic4x-*)
	tmake_file=c4x/t-c4x
	c_target_objs="c4x-c.o"
	cxx_target_objs="c4x-c.o"
	;;
cris-*-aout)
	tm_file="dbxelf.h ${tm_file} cris/aout.h"
	gas=yes
	tmake_file="cris/t-cris cris/t-aout"
	extra_options="${extra_options} cris/aout.opt"
	;;
cris-*-elf | cris-*-none)
	tm_file="dbxelf.h elfos.h ${tm_file}"
	tmake_file="cris/t-cris cris/t-elfmulti"
	gas=yes
	extra_options="${extra_options} cris/elf.opt"
	;;
cris-*-linux*)
	tm_file="dbxelf.h elfos.h svr4.h ${tm_file} linux.h cris/linux.h"
	# We need to avoid using t-linux, so override default tmake_file
	tmake_file="cris/t-cris t-slibgcc-elf-ver cris/t-linux"
	extra_options="${extra_options} cris/linux.opt"
	;;
crx-*-elf)
	tm_file="elfos.h ${tm_file}"
	extra_parts="crtbegin.o crtend.o"
	use_collect2=no
	;;
fr30-*-elf)
	tm_file="dbxelf.h elfos.h svr4.h ${tm_file}"
	tmake_file=fr30/t-fr30
	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
	use_fixproto=yes
	;;
frv-*-elf)
	tm_file="dbxelf.h elfos.h svr4.h ${tm_file} frv/frv-abi.h"
	tmake_file=frv/t-frv
	use_fixproto=yes
	;;
frv-*-*linux*)
	tm_file="dbxelf.h elfos.h svr4.h ${tm_file} \
	         linux.h frv/linux.h frv/frv-abi.h"
	tmake_file="${tmake_file} frv/t-frv frv/t-linux"
	;;
h8300-*-rtemscoff*)
	tmake_file="h8300/t-h8300 t-rtems h8300/t-rtems"
	tm_file="h8300/h8300.h dbxcoff.h h8300/coff.h h8300/rtems.h rtems.h"
	;;
h8300-*-rtems*)
	tmake_file="h8300/t-h8300 h8300/t-elf t-rtems h8300/t-rtems"
	tm_file="h8300/h8300.h dbxelf.h elfos.h h8300/elf.h h8300/rtems.h rtems.h"
	;;
h8300-*-elf*)
	tmake_file="h8300/t-h8300 h8300/t-elf"
	tm_file="h8300/h8300.h dbxelf.h elfos.h h8300/elf.h"
	use_fixproto=yes
	;;
h8300-*-*)
	tm_file="h8300/h8300.h dbxcoff.h h8300/coff.h"
	use_fixproto=yes
	;;
hppa*64*-*-linux* | parisc*64*-*-linux*)
	target_cpu_default="MASK_PA_11|MASK_PA_20"
	tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h svr4.h linux.h \
		 pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h pa/pa64-linux.h"
	tmake_file="${tmake_file} pa/t-linux64"
	gas=yes gnu_ld=yes
	need_64bit_hwint=yes
	;;
hppa*-*-linux* | parisc*-*-linux*)
	target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h pa/pa-linux.h \
		 pa/pa32-regs.h pa/pa32-linux.h"
	tmake_file="${tmake_file} pa/t-linux"
	# Set the libgcc version number
	if test x$sjlj = x1; then
	    tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver"
	else
	    tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
	fi
	;;
# port not yet contributed.
#hppa*-*-openbsd*)
#	target_cpu_default="MASK_PA_11"
#	;;
hppa1.1-*-pro*)
	target_cpu_default="MASK_PORTABLE_RUNTIME|MASK_NO_SPACE_REGS|MASK_SOFT_FLOAT"
	tm_file="${tm_file} pa/pa32-regs.h dbxelf.h elfos.h pa/elf.h \
		 pa/pa-pro-end.h libgloss.h"
	tmake_file="pa/t-pro"
	;;
hppa1.1-*-osf*)
	target_cpu_default="MASK_PA_11"
	tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h pa/pa-osf.h"
	tmake_file="pa/t-pa"
	use_collect2=yes
	;;
hppa1.1-*-bsd*)
	target_cpu_default="MASK_PA_11"
	tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h"
	tmake_file="pa/t-pa"
	use_collect2=yes
	;;
hppa[12]*-*-hpux10*)
	case ${target} in
	hppa1.1-*-* | hppa2*-*-*)
		target_cpu_default="MASK_PA_11"
		;;
	esac
	tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
		 pa/pa-hpux.h pa/pa-hpux10.h"
	extra_options="${extra_options} pa/pa-hpux.opt"
	case ${target} in
	*-*-hpux10.[1-9]*)
		tm_file="${tm_file} pa/pa-hpux1010.h"
		extra_options="${extra_options} pa/pa-hpux1010.opt"
		;;
	esac
	tmake_file="pa/t-pa-hpux10 pa/t-pa-hpux pa/t-hpux-shlib"
	case ${enable_threads} in
	  "")
	    if test x$have_pthread_h = xyes ; then
	      tmake_file="${tmake_file} pa/t-dce-thr"
	    fi
	    ;;
	  yes | dce)
	    tmake_file="${tmake_file} pa/t-dce-thr"
	    ;;
	esac
	# Set the libgcc version number
	if test x$sjlj = x1; then
	    tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver"
	else
	    tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
	fi
	use_collect2=yes
	use_fixproto=yes
	gas=yes
	;;
hppa*64*-*-hpux11*)
	target_cpu_default="MASK_PA_11|MASK_PA_20"
	if test x$gnu_ld = xyes
	then
		target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
	fi
	tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
		 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
		 pa/pa-hpux11.h"
	case ${target} in
	*-*-hpux11.[1-9]*)
		tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
		extra_options="${extra_options} pa/pa-hpux1111.opt"
		;;
	*)
		tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
		;;
	esac
	extra_options="${extra_options} pa/pa-hpux.opt \
		       pa/pa-hpux1010.opt pa/pa64-hpux.opt"
	need_64bit_hwint=yes
	tmake_file="pa/t-pa64 pa/t-pa-hpux pa/t-hpux-shlib"
	# Set the libgcc version number
	if test x$sjlj = x1; 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 crtend.o crtbeginS.o crtendS.o crtbeginT.o \
		     libgcc_stub.a"
	case x${enable_threads} in
	x | xyes | xposix )
		thread_file=posix
		;;
	esac
	gas=yes
	;;
hppa[12]*-*-hpux11*)
	case ${target} in
	hppa1.1-*-* | hppa2*-*-*)
		target_cpu_default="MASK_PA_11"
		;;
	esac
	tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
		 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
	extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt"
	case ${target} in
	*-*-hpux11.[1-9]*)
		tm_file="${tm_file} pa/pa-hpux1111.h"
		extra_options="${extra_options} pa/pa-hpux1111.opt"
		;;
	esac
	tmake_file="pa/t-pa-hpux11 pa/t-pa-hpux pa/t-hpux-shlib"
	# Set the libgcc version number
	if test x$sjlj = x1; then
	    tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver"
	else
	    tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
	fi
	case x${enable_threads} in
	x | xyes | xposix )
		thread_file=posix
		;;
	esac
	use_collect2=yes
	gas=yes
	;;
i[34567]86-*-darwin*)
	need_64bit_hwint=yes
	# APPLE LOCAL mainline
	# Deleted a comment here.
	# APPLE LOCAL mainline
	with_cpu=${with_cpu:-core2}
	# APPLE LOCAL Macintosh alignment 2002-2-19 --ff
	extra_options="${extra_options} i386/darwin.opt"
	# APPLE LOCAL 4099000 5681645
	tmake_file="${tmake_file} t-slibgcc-darwin i386/t-darwin"
	;;
x86_64-*-darwin*)
	# APPLE LOCAL mainline
	# Deleted with_arch
	# APPLE LOCAL mainline
	with_cpu=${with_cpu:-core2}
	# APPLE LOCAL Macintosh alignment 2002-2-19 --ff
	extra_options="${extra_options} i386/darwin.opt"
	tmake_file="t-darwin ${cpu_type}/t-darwin64 t-slibgcc-darwin"
	tm_file="${tm_file} ${cpu_type}/darwin64.h"
	;;
i[34567]86-*-elf*)
	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/i386elf.h"
	tmake_file="i386/t-i386elf t-svr4"
	use_fixproto=yes
	;;
i[34567]86-sequent-ptx4* | i[34567]86-sequent-sysv4*)
	if test x$gas = xyes
	then
		tm_file="${tm_file} usegas.h"
	fi
	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ptx4.h i386/ptx4-i.h"
	tmake_file=t-svr4
	extra_parts="crtbegin.o crtend.o"
	use_fixproto=yes
	;;
i[34567]86-*-aout*)
	tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h i386/i386-aout.h"
	use_fixproto=yes
	;;
i[34567]86-*-beoself* | i[34567]86-*-beos*)
	tmake_file='i386/t-beos i386/t-crtpic'
	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h i386/beos-elf.h"
	extra_parts='crtbegin.o crtend.o'
	;;
i[34567]86-*-freebsd*)
	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
	;;
x86_64-*-freebsd*)
	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h"
	;;
i[34567]86-*-netbsdelf*)
	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h"
	;;
i[34567]86-*-netbsd*)
	tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h netbsd.h netbsd-aout.h i386/netbsd.h"
	tmake_file=t-netbsd
	extra_parts=""
	use_collect2=yes
	;;
x86_64-*-netbsd*)
	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h"
	;;
i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123])
	tm_file="i386/i386.h i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h openbsd-oldgas.h openbsd.h i386/openbsd.h"
	# needed to unconfuse gdb
	tmake_file="t-libc-ok t-openbsd i386/t-openbsd"
	# we need collect2 until our bug is fixed...
	use_collect2=yes
	;;
i[34567]86-*-openbsd*)
	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
# LLVM local
	tm_file="${tm_file} openbsd.h openbsd-libpthread.h i386/openbsdelf.h"
	gas=yes
	gnu_ld=yes
	;;
# LLVM local begin
x86_64-*-openbsd*)
	tm_file="i386/biarch64.h i386/i386.h i386/unix.h i386/att.h dbxelf.h elfos.h openbsd.h openbsd-libpthread.h i386/x86-64.h i386/openbsd64.h"
	tm_file="${tm_file} exec-stack.h"
	tmake_file="t-libc-ok t-openbsd i386/t-openbsd"
	;;
# LLVM local end
i[34567]86-*-coff*)
	tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/i386-coff.h"
	use_fixproto=yes
	;;
i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu)
			# Intel 80386's running GNU/*
			# with ELF format using glibc 2
	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h i386/linux.h"
	case ${target} in
	i[34567]86-*-knetbsd*-gnu) tm_file="${tm_file} knetbsd-gnu.h i386/knetbsd-gnu.h" ;;
	i[34567]86-*-kfreebsd*-gnu) tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu.h" ;;
	esac
	tmake_file="${tmake_file} i386/t-crtstuff i386/t-crtfm t-dfprules"
	;;
x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu)
	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h \
		 i386/x86-64.h i386/linux64.h"
	case ${target} in
	x86_64-*-kfreebsd*-gnu) tm_file="${tm_file} kfreebsd-gnu.h" ;;
	x86_64-*-knetbsd*-gnu) tm_file="${tm_file} knetbsd-gnu.h" ;;
	esac
	tmake_file="${tmake_file} i386/t-linux64 i386/t-crtfm t-dfprules"
	;;
i[34567]86-*-gnu*)
	;;
i[34567]86-pc-msdosdjgpp*)
	xm_file=i386/xm-djgpp.h
	tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h"
	tmake_file=i386/t-djgpp
	extra_options="${extra_options} i386/djgpp.opt"
	gnu_ld=yes
	gas=yes
	;;
i[34567]86-*-lynxos*)
	xm_defines=POSIX
	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
	tmake_file="i386/t-crtstuff t-lynx"
	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
	extra_options="${extra_options} lynx.opt"
	thread_file=lynx
	gnu_ld=yes
	gas=yes
	;;
i[3456x]86-*-netware*)
	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h tm-dwarf2.h i386/netware.h"
 	tmake_file=i386/t-netware
	extra_objs=netware.o
	case /${with_ld} in
	*/nwld)
		extra_objs="$extra_objs nwld.o"
		tm_file="${tm_file} i386/nwld.h"
	 	tmake_file="${tmake_file} i386/t-nwld"
		extra_parts="crt0.o libgcc.def libc.def libcpre.def posixpre.def"
		;;
	esac
	case x${enable_threads} in
	x | xyes | xposix) thread_file='posix';;
	xnks) thread_file='nks';;
	xno) ;;
	*) echo 'Unknown thread configuration for NetWare' >&2; exit 1;;
	esac
	;;
i[34567]86-*-nto-qnx*)
	tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h svr4.h i386/unix.h i386/nto.h"
	tmake_file=i386/t-nto
	gnu_ld=yes
	gas=yes
	;;
i[34567]86-*-rtems*)
	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/i386elf.h i386/rtemself.h rtems.h"
	extra_parts="crtbegin.o crtend.o crti.o crtn.o"
	tmake_file="i386/t-rtems-i386 i386/t-crtstuff t-rtems"
	;;
i[34567]86-*-sco3.2v5*)	# 80386 running SCO Open Server 5
	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/sco5.h"
	if test x$gas = xyes
	then
		tm_file="usegas.h ${tm_file}"
	fi
	tmake_file=i386/t-sco5
	extra_parts="crtbegin.o crtend.o"
	extra_options="${extra_options} i386/sco5.opt"
	use_fixproto=yes
	;;
i[34567]86-*-solaris2*)
	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h i386/sysv4.h sol2.h"
	case ${target} in
	*-*-solaris2.[0-6] | *-*-solaris2.[0-6].*)
		tm_file="${tm_file} sol2-6.h"
		;;
	*-*-solaris2.1[0-9]*)
		tm_file="${tm_file} sol2-10.h"
		;;
	esac
	tm_file="${tm_file} i386/sol2.h"
	tmake_file="t-sol2 i386/t-sol2 t-svr4"
	c_target_objs="sol2-c.o"
	cxx_target_objs="sol2-c.o"
	extra_objs="sol2.o"
	tm_p_file="${tm_p_file} sol2-protos.h"
	if test x$gnu_ld = xyes; then
		tmake_file="$tmake_file t-slibgcc-elf-ver"
		tm_defines="${tm_defines} TARGET_GNU_LD=1"
	else
		tmake_file="$tmake_file t-slibgcc-sld"
	fi
	if test x$gas = xyes; then
		tm_file="usegas.h ${tm_file}"
	fi
	case ${target} in
	*-*-solaris2.[789] | *-*-solaris2.1[0-9]*)
		tm_file="$tm_file tm-dwarf2.h"
		;;
	esac
	case ${target} in
	*-*-solaris2.1[0-9]*)
		tm_file="${tm_file} i386/x86-64.h i386/sol2-10.h"
		tm_defines="${tm_defines} TARGET_BI_ARCH=1"
		tmake_file="$tmake_file i386/t-sol2-10"
		need_64bit_hwint=yes
		# FIXME: -m64 for i[34567]86-*-* should be allowed just
		# like -m32 for x86_64-*-*.
		case X"${with_cpu}" in
		# APPLE LOCAL mainline
		Xgeneric|Xcore2|Xnocona|Xx86-64|Xk8|Xopteron|Xathlon64|Xathlon-fx)
			;;
		X)
			with_cpu=generic
			;;
		*)
			echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
			# APPLE LOCAL mainline
			echo "generic core2 nocona x86-64 k8 opteron athlon64 athlon-fx" 1>&2
			exit 1
			;;
		esac
		# Solaris 2.10 provides crt1.o, crti.o, crtn.o, and gcrt1.o as
		# part of the base system.
		extra_parts="gmon.o crtbegin.o crtend.o"
		;;
	*)
		extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o"
		;;
	esac
	case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
	  "":yes:* | yes:yes:* )
		case ${target} in
		  *-*-solaris2.[0-6] | *-*-solaris2.[0-6].*)
			thread_file=posix95
			;;
		  *)
			thread_file=posix
			;;
		esac
		;;
	  "":*:yes | yes:*:yes )
		thread_file=solaris
		;;
	esac
	;;
i[34567]86-*-sysv5*)           # Intel x86 on System V Release 5
       tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h i386/sysv4.h i386/sysv5.h"
       if test x$stabs = xyes
       then
               tm_file="${tm_file} dbx.h"
       fi
       tmake_file="i386/t-crtpic t-svr4"
       extra_parts="crtbegin.o crtend.o"
       if test x$enable_threads = xyes; then
	       thread_file='posix'
       fi
	use_fixproto=yes
       ;;
i[34567]86-*-sysv4*)		# Intel 80386's running system V.4
	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h i386/sysv4.h i386/sysv4-cpp.h"
	if test x$stabs = xyes
	then
		tm_file="${tm_file} dbx.h"
	fi
	tmake_file="i386/t-crtpic t-svr4"
	extra_parts="crtbegin.o crtend.o"
	use_fixproto=yes
	;;
i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae)
	tm_file="${tm_file} i386/sysv4.h i386/unix.h i386/att.h vx-common.h"
	case ${target} in
	  *-vxworksae*)
	    tm_file="${tm_file} vxworksae.h i386/vxworksae.h"
	    tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
	    ;;
	  *)
	    tm_file="${tm_file} vxworks.h i386/vxworks.h"
	    tmake_file="${tmake_file} i386/t-vxworks"
	    ;;
	esac
	;;
i[34567]86-*-pe | i[34567]86-*-cygwin*)
	tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/cygwin.h"
	xm_file=i386/xm-cygwin.h
	tmake_file="i386/t-cygwin i386/t-cygming"
	target_gtfiles="\$(srcdir)/config/i386/winnt.c"
	extra_options="${extra_options} i386/cygming.opt"
	extra_objs="winnt.o winnt-stubs.o"
	c_target_objs=cygwin2.o
	cxx_target_objs="cygwin2.o winnt-cxx.o"
	extra_gcc_objs=cygwin1.o
	extra_parts="crtbegin.o crtend.o"
	if test x$enable_threads = xyes; then
		thread_file='posix'
	fi
	;;
# LLVM LOCAL begin mainline
i[34567]86-*-mingw32* | x86_64-*-mingw32*)
# LLVM LOCAL end mainline
	tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/mingw32.h"
	xm_file=i386/xm-mingw32.h
	tmake_file="i386/t-cygming i386/t-mingw32"
	target_gtfiles="\$(srcdir)/config/i386/winnt.c"
	extra_options="${extra_options} i386/cygming.opt"
	extra_objs="winnt.o winnt-stubs.o"
# LLVM LOCAL begin mainline
	cxx_target_objs=winnt-cxx.o
	default_use_cxa_atexit=yes
# LLVM LOCAL end mainline
	extra_parts="crtbegin.o crtend.o"
	case ${enable_threads} in
	  "" | yes | win32)
	  thread_file='win32'
	  tmake_file="${tmake_file} i386/t-gthr-win32"
	  ;;
	esac
	case ${target} in
		*mingw32crt*)
			tm_file="${tm_file} i386/crtdll.h"
			;;
		*mingw32msv* | *mingw32*)
			;;
	esac
	;;
i[34567]86-*-uwin*)
	tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygwin.h i386/uwin.h"
	tmake_file="i386/t-cygwin i386/t-uwin"
	extra_objs=winnt.o
	extra_options="${extra_options} i386/cygming.opt"
	target_gtfiles="\$(srcdir)/config/i386/winnt.c"
	if test x$enable_threads = xyes; then
		thread_file='win32'
	fi
	use_fixproto=yes
	;;
i[34567]86-*-interix3*)
	tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/i386-interix.h i386/i386-interix3.h interix.h interix3.h"
	tmake_file="i386/t-interix"
	extra_objs=winnt.o
	target_gtfiles="\$(srcdir)/config/i386/winnt.c"
	if test x$enable_threads = xyes ; then
		thread_file='posix'
	fi
	if test x$stabs = xyes ; then
		tm_file="${tm_file} dbxcoff.h"
	fi
	;;
i[34567]86-*-kaos*)
	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/i386elf.h kaos.h i386/kaos-i386.h"
	tmake_file="i386/t-i386elf t-svr4"
	;;
ia64*-*-elf*)
	tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/elf.h"
	tmake_file="ia64/t-ia64"
	target_cpu_default="0"
	if test x$gas = xyes
	then
		target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
	fi
	if test x$gnu_ld = xyes
	then
		target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
	fi
	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
	use_fixproto=yes
	;;
ia64*-*-freebsd*)
	tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
	target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
	tmake_file="${tmake_file} ia64/t-ia64"
	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
	;;
ia64*-*-linux*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h ia64/sysv4.h ia64/linux.h"
	tmake_file="${tmake_file} ia64/t-ia64 t-libunwind ia64/t-glibc"
	if test x$with_system_libunwind != xyes ; then
		tmake_file="${tmake_file} t-libunwind-elf ia64/t-glibc-libunwind"
	fi
	target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
	;;
ia64*-*-hpux*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h ia64/sysv4.h ia64/hpux.h"
	tmake_file="ia64/t-ia64 ia64/t-hpux"
	target_cpu_default="MASK_GNU_AS"
	case x$enable_threads in
	xyes | xposix )
		thread_file=posix
		;;
	esac
	use_collect2=no
	c_target_objs="ia64-c.o"
	cxx_target_objs="ia64-c.o"
	extra_options="${extra_options} ia64/ilp32.opt"
	# If we decide to run fixproto we should define FIXPROTO_DEFINES
	# in ia64/t-hpux, and also fix the definition of putenv in
	# sys-protos.h (const char not char).
	;;
iq2000*-*-elf*)
        tm_file="svr4.h elfos.h iq2000/iq2000.h"
        tmake_file=iq2000/t-iq2000
        out_file=iq2000/iq2000.c
        md_file=iq2000/iq2000.md
	use_fixproto=yes
        ;;
m32r-*-elf*)
	tm_file="dbxelf.h elfos.h svr4.h ${tm_file}"
	extra_parts="crtinit.o crtfini.o"
	use_fixproto=yes
 	;;
m32rle-*-elf*)
	tm_file="dbxelf.h elfos.h svr4.h m32r/little.h ${tm_file}"
	extra_parts="crtinit.o crtfini.o m32rx/crtinit.o m32rx/crtfini.o"
	use_fixproto=yes
	;;
m32r-*-linux*)
	tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} m32r/linux.h"
	# We override the tmake_file for linux -- why?
	tmake_file="t-slibgcc-elf-ver m32r/t-linux"
	gnu_ld=yes
	use_fixproto=yes
	if test x$enable_threads = xyes; then
		thread_file='posix'
	fi
 	;;
m32rle-*-linux*)
	tm_file="dbxelf.h elfos.h svr4.h linux.h m32r/little.h ${tm_file} m32r/linux.h"
	# We override the tmake_file for linux -- why?
	tmake_file="t-slibgcc-elf-ver m32r/t-linux"
	gnu_ld=yes
	use_fixproto=yes
	if test x$enable_threads = xyes; then
		thread_file='posix'
	fi
	;;
# m68hc11 and m68hc12 share the same machine description.
m68hc11-*-*|m6811-*-*)
	tm_file="dbxelf.h elfos.h m68hc11/m68hc11.h"
	tm_p_file="m68hc11/m68hc11-protos.h"
	md_file="m68hc11/m68hc11.md"
	out_file="m68hc11/m68hc11.c"
	tmake_file="m68hc11/t-m68hc11-gas"
	use_fixproto=yes
        ;;
m68hc12-*-*|m6812-*-*)
	tm_file="m68hc11/m68hc12.h dbxelf.h elfos.h m68hc11/m68hc11.h"
	tm_p_file="m68hc11/m68hc11-protos.h"
	md_file="m68hc11/m68hc11.md"
	out_file="m68hc11/m68hc11.c"
	tmake_file="m68hc11/t-m68hc11-gas"
	extra_options="${extra_options} m68hc11/m68hc11.opt"
	use_fixproto=yes
        ;;
m68k-*-aout*)
	tmake_file=m68k/t-m68kbare
	tm_file="m68k/m68k.h m68k/m68k-none.h m68k/m68kemb.h m68k/m68k-aout.h libgloss.h"
	;;
m68k-*-coff*)
	tmake_file=m68k/t-m68kbare
	tm_defines="${tm_defines} MOTOROLA USE_GAS"
	tm_file="m68k/m68k.h m68k/m68k-none.h m68k/m68kemb.h dbxcoff.h m68k/coff.h dbx.h"
	use_fixproto=yes
	;;
m68020-*-elf* | m68k-*-elf*)
	tm_file="m68k/m68k.h m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h"
	tm_defines="${tm_defines} MOTOROLA USE_GAS"
	tmake_file=m68k/t-m68kelf
	extra_parts="crtbegin.o crtend.o"
	;;
m68010-*-netbsdelf* | m68k*-*-netbsdelf*)
	tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h m68k/netbsd-elf.h"
	tm_defines="${tm_defines} MOTOROLA USE_GAS"
	case ${target} in
	m68010*)
		target_cpu_default="0"
		;;
	*)
		target_cpu_default="MASK_68020|MASK_68881|MASK_BITFIELD"
		;;
	esac
	;;
m68k*-*-openbsd*)
	# needed to unconfuse gdb
	tm_defines="${tm_defines} OBSD_OLD_GAS TARGET_DEFAULT=(MASK_68020|MASK_68881|MASK_BITFIELD)"
	tm_file="m68k/m68k.h openbsd.h m68k/openbsd.h"
	tmake_file="t-libc-ok t-openbsd m68k/t-openbsd"
	# we need collect2 until our bug is fixed...
	use_collect2=yes
	;;
m68k-*-uclinux*)		# Motorola m68k/ColdFire running uClinux with uClibc
	tm_file="m68k/m68k.h m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/uclinux.h"
 	tm_defines="${tm_defines} MOTOROLA USE_GAS"
	tmake_file=m68k/t-uclinux
	use_fixproto=no
	;;
m68k-*-linux*)		# Motorola m68k's running GNU/Linux
				# with ELF format using glibc 2
				# aka the GNU/Linux C library 6.
	tm_file="m68k/m68k.h dbxelf.h elfos.h svr4.h linux.h m68k/linux.h"
	extra_options="${extra_options} m68k/ieee.opt"
	tm_defines="${tm_defines} MOTOROLA USE_GAS"
	# if not configured with --enable-sjlj-exceptions, bump the
	# libgcc version number
	if test x$sjlj != x1; then
	    tmake_file="$tmake_file m68k/t-slibgcc-elf-ver"
	fi
	;;
m68k-*-rtems*)
	tmake_file="m68k/t-m68kbare m68k/t-crtstuff t-rtems m68k/t-rtems"
	tm_file="m68k/m68k.h m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h m68k/rtemself.h rtems.h"
	tm_defines="${tm_defines} MOTOROLA USE_GAS"
	extra_parts="crtbegin.o crtend.o"
	;;
mcore-*-elf)
	tm_file="dbxelf.h elfos.h svr4.h ${tm_file} mcore/mcore-elf.h"
	tmake_file=mcore/t-mcore
	use_fixproto=yes
	;;
mcore-*-pe*)
	tm_file="svr3.h dbxcoff.h ${tm_file} mcore/mcore-pe.h"
	tmake_file=mcore/t-mcore-pe
	use_fixproto=yes
	;;
mips-sgi-irix[56]*)
	tm_file="elfos.h ${tm_file} mips/iris.h"
	tmake_file="mips/t-iris mips/t-slibgcc-irix"
	target_cpu_default="MASK_ABICALLS"
	case ${target} in
	*-*-irix5*)
		tm_file="${tm_file} mips/iris5.h"
		;;

	*-*-irix6*)
		tm_file="${tm_file} mips/iris6.h"
		tmake_file="${tmake_file} mips/t-iris6"
		tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
		;;
	esac
	if test "x$stabs" = xyes
	then
		tm_file="${tm_file} dbx.h mips/dbxmdebug.h"
	fi
	if test "x$gnu_ld" = xyes
	then
		tm_defines="${tm_defines} IRIX_USING_GNU_LD"
	fi
#	if test x$enable_threads = xyes; then
#		thread_file='irix'
#	fi
	use_fixproto=yes
	;;
mips*-*-netbsd*)			# NetBSD/mips, either endian.
	target_cpu_default="MASK_ABICALLS"
	tm_file="elfos.h ${tm_file} mips/elf.h netbsd.h netbsd-elf.h mips/netbsd.h"
	;;
mips64*-*-linux*)
	tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} mips/linux.h mips/linux64.h"
	tmake_file="${tmake_file} mips/t-linux64"
	tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32"
	gnu_ld=yes
	gas=yes
	;;
mips*-*-linux*)				# Linux MIPS, either endian.
        tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} mips/linux.h"
	case ${target} in
        mipsisa32*-*)
                target_cpu_default="MASK_SOFT_FLOAT"
		tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
                ;;
        esac
	;;
mips*-*-openbsd*)
	tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_OBJECT OBSD_HAS_CORRECT_SPECS"
	target_cpu_default="MASK_ABICALLS"
	tm_file="mips/mips.h openbsd.h mips/openbsd.h mips/sdb.h"
	case ${target} in
	mips*el-*-openbsd*)
	    tm_defines="${tm_defines} TARGET_ENDIAN_DEFAULT=0";;
	*)  tm_defines="${tm_defines} TARGET_ENDIAN_DEFAULT=MASK_BIG_ENDIAN";;
        esac
	;;
mipsisa32-*-elf* | mipsisa32el-*-elf*)
	tm_file="elfos.h ${tm_file} mips/elf.h"
	tmake_file=mips/t-isa3264
	tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_EABI"
	use_fixproto=yes
	;;
mipsisa32r2-*-elf* | mipsisa32r2el-*-elf*)
	tm_file="elfos.h ${tm_file} mips/elf.h"
	tmake_file=mips/t-isa3264
	tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_EABI"
	use_fixproto=yes
	;;
mipsisa64-*-elf* | mipsisa64el-*-elf*)
	tm_file="elfos.h ${tm_file} mips/elf.h"
	tmake_file=mips/t-isa3264
	target_cpu_default="MASK_64BIT|MASK_FLOAT64"
	tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_EABI"
	use_fixproto=yes
	;;
mipsisa64sr71k-*-elf*)
        tm_file="elfos.h ${tm_file} mips/elf.h"
        tmake_file=mips/t-sr71k
	target_cpu_default="MASK_64BIT|MASK_FLOAT64"
	tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
	use_fixproto=yes
        ;;
mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
	tm_file="elfos.h ${tm_file} mips/elf.h"
	tmake_file="mips/t-elf mips/t-sb1"
	target_cpu_default="MASK_64BIT|MASK_FLOAT64"
	tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
	use_fixproto=yes
	;;
mips-*-elf* | mipsel-*-elf*)
	tm_file="elfos.h ${tm_file} mips/elf.h"
	tmake_file=mips/t-elf
	use_fixproto=yes
	;;
mips64-*-elf* | mips64el-*-elf*)
	tm_file="elfos.h ${tm_file} mips/elf.h"
	tmake_file=mips/t-elf
	target_cpu_default="MASK_64BIT|MASK_FLOAT64"
	tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
	use_fixproto=yes
	;;
mips64vr-*-elf* | mips64vrel-*-elf*)
        tm_file="mips/vr.h elfos.h ${tm_file} mips/elf.h"
        tmake_file=mips/t-vr
	use_fixproto=yes
        ;;
mips64orion-*-elf* | mips64orionel-*-elf*)
	tm_file="elfos.h ${tm_file} mips/elforion.h mips/elf.h"
	tmake_file=mips/t-elf
	target_cpu_default="MASK_64BIT|MASK_FLOAT64"
	tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
	use_fixproto=yes
	;;
mips*-*-rtems*)
	tm_file="elfos.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
	tmake_file="mips/t-elf t-rtems mips/t-rtems"
	;;
mips-wrs-vxworks)
	# We want vxworks.h after mips/elf.h, which unfortunately means we
	# have to redo the tm_file list from scratch.
	tm_file="elfos.h mips/mips.h svr4.h mips/elf.h vxworks.h mips/vxworks.h"
	tmake_file="${tmake_file} mips/t-vxworks"
	;;
mips-wrs-windiss)	# Instruction-level simulator for VxWorks.
	xm_defines=POSIX
	tm_file="elfos.h mips/mips.h svr4.h mips/elf.h windiss.h mips/windiss.h"
	tmake_file="${tmake_file} mips/t-elf"
	thread_file=
	;;
mipstx39-*-elf* | mipstx39el-*-elf*)
	tm_file="elfos.h ${tm_file} mips/r3900.h mips/elf.h"
	tmake_file=mips/t-r3900
	use_fixproto=yes
	;;
mipsallegrex*)
	tm_file="elfos.h ${tm_file} mips/elf.h"
	tmake_file=mips/t-allegrex
	target_cpu_default="MASK_SINGLE_FLOAT|MASK_DIVIDE_BREAKS"
	tm_defines="${tm_defines} MIPS_ISA_DEFAULT=2 MIPS_CPU_STRING_DEFAULT=\\\"allegrex\\\" MIPS_ABI_DEFAULT=ABI_EABI"
	case ${target} in
	mipsallegrex*-psp-elf*)   
		tm_file="${tm_file} mips/psp.h"
		;;
	esac
	use_fixproto=yes
	;; 
mmix-knuth-mmixware)
	need_64bit_hwint=yes
	;;
mn10300-*-*)
	tm_file="dbxelf.h elfos.h svr4.h ${tm_file}"
	if test x$stabs = xyes
	then
		tm_file="${tm_file} dbx.h"
	fi
	use_collect2=no
	use_fixproto=yes
	;;
mt-*-elf)
        tm_file="dbxelf.h elfos.h svr4.h ${tm_file}"
        tmake_file="${tmake_file} mt/t-mt"
        ;;
ns32k-*-netbsdelf*)
	echo "GCC does not yet support the ${target} target"; exit 1
	;;
ns32k-*-netbsd*)
	tm_file="${tm_file} netbsd.h netbsd-aout.h ns32k/netbsd.h"
	# On NetBSD, the headers are already okay, except for math.h.
	tmake_file="t-netbsd ns32k/t-ns32k"
	extra_parts=""
	use_collect2=yes
	;;
pdp11-*-bsd)
	tm_file="${tm_file} pdp11/2bsd.h"
	use_fixproto=yes
        ;;
pdp11-*-*)
	use_fixproto=yes
	;;
# port not yet contributed
#powerpc-*-openbsd*)
#	tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-fprules-fpbit "
#	extra_headers=
#	;;
powerpc64-*-linux*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h"
	test x$with_cpu != x || cpu_is_64bit=yes
	test x$cpu_is_64bit != xyes || tm_file="${tm_file} rs6000/default64.h"
# LLVM LOCAL begin
        # Disable biarch builds for powerpc64-linux for now. There is no support for biarch
        # builds in llvm-gcc yet. With this change it is possible to create non-biarch builds
        # for powerpc64-linux which was not possible before. So this change has two effects:
        #   1. Disable (broken) biarch builds
        #   2. Allow non-biarch builds.
	tm_file="${tm_file} rs6000/linux64.h"
# LLVM LOCAL end
	if test x${enable_secureplt} = xyes; then
		tm_file="rs6000/secureplt.h ${tm_file}"
	fi
	extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
	tmake_file="t-dfprules rs6000/t-fprules ${tmake_file} rs6000/t-ppccomm rs6000/t-linux64 rs6000/t-fprules-softfp soft-fp/t-softfp"
	;;
powerpc64-*-gnu*)
	tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux64.h rs6000/gnu.h"
	extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
	tmake_file="rs6000/t-fprules t-slibgcc-elf-ver t-gnu rs6000/t-linux64 rs6000/t-fprules-softfp soft-fp/t-softfp"
	;;
powerpc-*-beos*)
	tm_file="${tm_file} rs6000/aix.h rs6000/beos.h rs6000/xcoff.h"
	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-beos"
	extra_headers=
	use_fixproto=yes
	;;
powerpc-*-darwin*)
	# APPLE LOCAL ARM 5681645
	tmake_file="${tmake_file} t-slibgcc-darwin"
	extra_options="${extra_options} rs6000/darwin.opt"
	# APPLE LOCAL mainline candidate 2006-06-22 4512244
	extra_parts="${extra_parts} crt2.o"
	case ${target} in
          # LLVM LOCAL begin
	  *-darwin1[0-9]*)
	    tm_file="${tm_file} rs6000/darwin8.h"
	    ;;
	  *-darwin[8-9]*)
          # LLVM LOCAL end
	    tmake_file="${tmake_file} rs6000/t-darwin8"
	    tm_file="${tm_file} rs6000/darwin8.h"
	    ;;
	  *-darwin7*)
	    tm_file="${tm_file} rs6000/darwin7.h"
	    ;;
	  *-darwin[0-6]*)
	    ;;
	esac
	extra_headers="altivec.h"
	;;
powerpc64-*-darwin*)
	tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
	# APPLE LOCAL ARM 5681645
	tmake_file="${tmake_file} t-slibgcc-darwin"
	extra_options="${extra_options} ${cpu_type}/darwin.opt"
	# We're omitting t-darwin8 to avoid building any multilibs
	extra_headers="altivec.h"
	;;
powerpc*-*-freebsd*)
	tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h rs6000/freebsd.h"
	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
	extra_options="${extra_options} rs6000/sysv4.opt"
	;;
powerpc-*-netbsd*)
	tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
	tmake_file="${tmake_file} rs6000/t-netbsd"
	extra_options="${extra_options} rs6000/sysv4.opt"
	;;
powerpc-*-chorusos*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h chorus.h"
	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos rs6000/t-ppccomm"
	extra_options="${extra_options} rs6000/sysv4.opt"
	case ${enable_threads} in
	  yes | posix)
	    thread_file='posix'
	    ;;
	esac
	use_fixproto=yes
	;;
powerpc-*-eabispe*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabispe.h"
	extra_options="${extra_options} rs6000/sysv4.opt"
	tmake_file="rs6000/t-spe rs6000/t-ppccomm"
	;;
powerpc-*-eabisimaltivec*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h rs6000/eabialtivec.h"
	extra_options="${extra_options} rs6000/sysv4.opt"
	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcendian rs6000/t-ppccomm"
	;;
powerpc-*-eabisim*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h"
	extra_options="${extra_options} rs6000/sysv4.opt"
	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
	;;
powerpc-*-elf*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h"
	extra_options="${extra_options} rs6000/sysv4.opt"
	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
	use_fixproto=yes
	;;
powerpc-*-eabialtivec*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabialtivec.h"
	extra_options="${extra_options} rs6000/sysv4.opt"
	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcendian rs6000/t-ppccomm"
	;;
powerpc-*-eabi*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h"
	extra_options="${extra_options} rs6000/sysv4.opt"
	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
	;;
powerpc-*-rtems*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/rtems.h rtems.h"
	extra_options="${extra_options} rs6000/sysv4.opt"
	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-rtems t-rtems rs6000/t-ppccomm"
	;;
powerpc-*-linux*altivec*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h"
	extra_options="${extra_options} rs6000/sysv4.opt"
	tmake_file="rs6000/t-fprules rs6000/t-fprules-softfp soft-fp/t-softfp rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
	;;
powerpc-*-linux*spe*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxspe.h"
	extra_options="${extra_options} rs6000/sysv4.opt"
	tmake_file="rs6000/t-fprules rs6000/t-fprules-softfp soft-fp/t-softfp rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
	;;
powerpc-*-linux*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h"
	extra_options="${extra_options} rs6000/sysv4.opt"
	tmake_file="t-dfprules rs6000/t-fprules rs6000/t-fprules-softfp soft-fp/t-softfp rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
	case ${enable_targets}:${cpu_is_64bit} in
	    *powerpc64* | all:* | *:yes)
		if test x$cpu_is_64bit = xyes; then
		    tm_file="${tm_file} rs6000/default64.h"
		fi
		tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h"
		tmake_file="$tmake_file rs6000/t-linux64"
		extra_options="${extra_options} rs6000/linux64.opt"
		;;
	    *)
		tm_file="${tm_file} rs6000/linux.h"
		;;
	esac
	if test x${enable_secureplt} = xyes; then
		tm_file="rs6000/secureplt.h ${tm_file}"
	fi
	;;
powerpc-*-gnu-gnualtivec*)
	tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h rs6000/gnu.h"
	extra_options="${extra_options} rs6000/sysv4.opt"
	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos t-slibgcc-elf-ver t-gnu rs6000/t-ppccomm"
	if test x$enable_threads = xyes; then
		thread_file='posix'
	fi
	;;
powerpc-*-gnu*)
	tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/gnu.h"
	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos t-slibgcc-elf-ver t-gnu rs6000/t-ppccomm"
	extra_options="${extra_options} rs6000/sysv4.opt"
	if test x$enable_threads = xyes; then
		thread_file='posix'
	fi
	;;
powerpc-wrs-vxworks|powerpc-wrs-vxworksae)
	# We want vxworks.h after rs6000/sysv4.h, which unfortunately
	# means we have to redo the tm_file list from scratch.
	tm_file="rs6000/rs6000.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h"
	tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppccomm rs6000/t-vxworks"
	extra_options="${extra_options} rs6000/sysv4.opt"
	extra_headers=ppc-asm.h
	case ${target} in
	  *-vxworksae*)
	    tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h"
	    tmake_file="${tmake_file} rs6000/t-vxworksae"
	    ;;
	  *-vxworks*)
	    tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h"
	    ;;
	esac
	;;
powerpc-wrs-windiss*)  # Instruction-level simulator for VxWorks.
	tm_file="${tm_file} elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/windiss.h"
	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
	extra_options="${extra_options} rs6000/sysv4.opt"
	thread_file=""
	use_fixproto=yes
	;;
powerpc-*-lynxos*)
	xm_defines=POSIX
	tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
	tmake_file="t-lynx rs6000/t-lynx"
	extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
	extra_options="${extra_options} lynx.opt"
	thread_file=lynx
	gnu_ld=yes
	gas=yes
	;;
powerpcle-*-sysv*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h"
	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos rs6000/t-ppccomm"
	extra_options="${extra_options} rs6000/sysv4.opt"
	use_fixproto=yes
	;;
powerpcle-*-elf*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h"
	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
	extra_options="${extra_options} rs6000/sysv4.opt"
	use_fixproto=yes
	;;
powerpcle-*-eabisim*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/eabisim.h"
	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
	extra_options="${extra_options} rs6000/sysv4.opt"
	;;
powerpcle-*-eabi*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h"
	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
	extra_options="${extra_options} rs6000/sysv4.opt"
	;;
powerpc-*-kaos*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h kaos.h rs6000/kaos-ppc.h"
	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
	extra_options="${extra_options} rs6000/sysv4.opt"
	;;
powerpcle-*-kaos*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h kaos.h rs6000/kaos-ppc.h"
	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
	extra_options="${extra_options} rs6000/sysv4.opt"
	;;
rs6000-ibm-aix4.[12]* | powerpc-ibm-aix4.[12]*)
	tm_file="${tm_file} rs6000/aix.h rs6000/aix41.h rs6000/xcoff.h"
	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-newas"
	extra_options="${extra_options} rs6000/aix41.opt"
	use_collect2=yes
	extra_headers=
	use_fixproto=yes
	;;
rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
	tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h"
	tmake_file=rs6000/t-aix43
	extra_options="${extra_options} rs6000/aix64.opt"
	use_collect2=yes
	thread_file='aix'
	extra_headers=
	;;
rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
	tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix51.h rs6000/xcoff.h"
	extra_options="${extra_options} rs6000/aix64.opt"
	tmake_file=rs6000/t-aix43
	use_collect2=yes
	thread_file='aix'
	extra_headers=
	;;
rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*)
	tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h"
	tmake_file=rs6000/t-aix52
	extra_options="${extra_options} rs6000/aix64.opt"
	use_collect2=yes
	thread_file='aix'
	extra_headers=
	;;
s390-*-linux*)
	tm_file="s390/s390.h dbxelf.h elfos.h svr4.h linux.h s390/linux.h"
	tmake_file="${tmake_file} t-dfprules s390/t-crtstuff s390/t-linux"
	;;
s390x-*-linux*)
	tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h svr4.h linux.h s390/linux.h"
	tm_p_file=s390/s390-protos.h
	md_file=s390/s390.md
	extra_modes=s390/s390-modes.def
	out_file=s390/s390.c
	tmake_file="${tmake_file} t-dfprules s390/t-crtstuff s390/t-linux s390/t-linux64"
	;;
s390x-ibm-tpf*)
        tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h svr4.h s390/tpf.h"
        tm_p_file=s390/s390-protos.h
        md_file=s390/s390.md
        extra_modes=s390/s390-modes.def
        out_file=s390/s390.c
        extra_parts="crtbeginS.o crtendS.o"
        tmake_file="s390/t-crtstuff s390/t-tpf"
        thread_file='tpf'
	extra_options="${extra_options} s390/tpf.opt"
	;;
score-*-elf)
        tm_file="dbxelf.h elfos.h score/elf.h score/score.h"
        tmake_file=score/t-score-elf
        extra_objs="score-mdaux.o"
        ;;
sh-*-elf* | sh[12346l]*-*-elf* | sh*-*-kaos* | \
sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \
  sh-*-linux* | sh[346lbe]*-*-linux* | \
  sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
   sh64-*-netbsd* | sh64l*-*-netbsd*)
	tmake_file="${tmake_file} sh/t-sh sh/t-elf"
	if test x${with_endian} = x; then
		case ${target} in
		sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
		shbe-*-* | sheb-*-*)		   with_endian=big,little ;;
		sh[1234]l* | sh[34]*-*-linux*)	   with_endian=little ;;
		shl* | sh64l* | sh*-*-linux* | \
		  sh5l* | sh-superh-elf)	   with_endian=little,big ;;
		sh[1234]*-*-*)			   with_endian=big ;;
		*)				   with_endian=big,little ;;
		esac
	fi
	case ${with_endian} in
	big|little)	tmake_file="${tmake_file} sh/t-1e" ;;
	big,little|little,big) ;;
	*)	echo "with_endian=${with_endian} not supported."; exit 1 ;;
	esac
	case ${with_endian} in
	little*)	tm_file="sh/little.h ${tm_file}" ;;
	esac
	tm_file="${tm_file} dbxelf.h elfos.h"
	case ${target} in
	sh*-*-netbsd*)	;;
	*)		tm_file="${tm_file} svr4.h" ;;
	esac
	tm_file="${tm_file} sh/elf.h"
	case ${target} in
	sh*-*-linux*)	tmake_file="${tmake_file} sh/t-linux"
			tm_file="${tm_file} linux.h sh/linux.h" ;;
	sh*-*-kaos*)	tm_file="${tm_file} sh/embed-elf.h kaos.h sh/kaos-sh.h"
			;;
	sh*-*-netbsd*)	tm_file="${tm_file} netbsd.h netbsd-elf.h sh/netbsd-elf.h" ;;
	sh*-superh-elf)	if test x$with_libgloss != xno; then
				with_libgloss=yes
				tm_file="${tm_file} sh/newlib.h"
			fi
			tm_file="${tm_file} sh/embed-elf.h"
			extra_options="${extra_options} sh/superh.opt" ;;
	*)		if test x$with_newlib = xyes \
			   && test x$with_libgloss = xyes; then
				tm_file="${tm_file} sh/newlib.h"
			fi
			tm_file="${tm_file} sh/embed-elf.h" ;;
	esac
	case ${target} in
	sh5*-*-netbsd*)
		# SHmedia, 32-bit ABI
		tmake_file="${tmake_file} sh/t-sh64 sh/t-netbsd"
		;;
	sh64*-netbsd*)
		# SHmedia, 64-bit ABI
		tmake_file="${tmake_file} sh/t-sh64 sh/t-netbsd sh/t-netbsd-sh5-64"
		;;
	*-*-netbsd)
                tmake_file="${tmake_file} sh/t-netbsd"
		;;
	sh64*-*-linux*)
		tmake_file="${tmake_file} sh/t-sh64 sh/t-linux64"
		tm_file="${tm_file} sh/sh64.h"
		extra_headers="shmedia.h ushmedia.h sshmedia.h"
		;;
	sh64*)
		tmake_file="${tmake_file} sh/t-sh64"
		tm_file="${tm_file} sh/sh64.h"
		extra_headers="shmedia.h ushmedia.h sshmedia.h"
		;;
	*-*-symbianelf*)
		tmake_file="sh/t-symbian"
		tm_file="sh/symbian-pre.h sh/little.h ${tm_file} sh/symbian-post.h"
		extra_objs="symbian.o"
		extra_parts="crt1.o crti.o crtn.o crtbegin.o crtend.o crtbeginS.o crtendS.o"
		;;
	esac
	# sed el/eb endian suffixes away to avoid confusion with sh[23]e
	case `echo ${target} | sed 's/e[lb]-/-/'` in
	sh64*-*-netbsd*)	sh_cpu_target=sh5-64media ;;
	sh64* | sh5*-*-netbsd*)	sh_cpu_target=sh5-32media ;;
	sh4a_single_only*)	sh_cpu_target=sh4a-single-only ;;
	sh4a_single*)		sh_cpu_target=sh4a-single ;;
	sh4a_nofpu*)		sh_cpu_target=sh4a-nofpu ;;
	sh4al)			sh_cpu_target=sh4al ;;
	sh4a*)			sh_cpu_target=sh4a ;;
	sh4_single_only*)	sh_cpu_target=sh4-single-only ;;
	sh4_single*)		sh_cpu_target=sh4-single ;;
	sh4_nofpu*)		sh_cpu_target=sh4-nofpu ;;
	sh4* | sh-superh-*)	sh_cpu_target=sh4 ;;
	sh3e*)			sh_cpu_target=sh3e ;;
	sh*-*-netbsd* | sh3*)	sh_cpu_target=sh3 ;;
	sh2a_single_only*)	sh_cpu_target=sh2a-single-only ;;
	sh2a_single*)		sh_cpu_target=sh2a-single ;;
	sh2a_nofpu*)		sh_cpu_target=sh2a-nofpu ;;
	sh2a*)			sh_cpu_target=sh2a ;;
	sh2e*)			sh_cpu_target=sh2e ;;
	sh2*)			sh_cpu_target=sh2 ;;
	*)			sh_cpu_target=sh1 ;;
	esac
	# did the user say --without-fp ?
	if test x$with_fp = xno; then
		case ${sh_cpu_target} in
		sh5-*media)	sh_cpu_target=${sh_cpu_target}-nofpu ;;
		sh4al | sh1)	;;
		sh4a* )		sh_cpu_target=sh4a-nofpu ;;
		sh4*)		sh_cpu_target=sh4-nofpu ;;
		sh3*)		sh_cpu_target=sh3 ;;
		sh2a*)		sh_cpu_target=sh2a-nofpu ;;
		sh2*)		sh_cpu_target=sh2 ;;
		*)	echo --without-fp not available for $target: ignored
		esac
		tm_defines="$tm_defines STRICT_NOFPU=1"
	fi
	sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
	case $sh_cpu_default in
	sh5-64media-nofpu | sh5-64media | \
	  sh5-32media-nofpu | sh5-32media | sh5-compact-nofpu | sh5-compact | \
	  sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
	  sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
	  sh4-single-only | sh4-single | sh4-nofpu | sh4 | \
	  sh3e | sh3 | sh2e | sh2 | sh1) ;;
	"")	sh_cpu_default=${sh_cpu_target} ;;
	*)	echo "with_cpu=$with_cpu not supported"; exit 1 ;;
	esac
	sh_multilibs=${with_multilib_list}
	if test x${sh_multilibs} = x ; then
		case ${target} in
		sh64-superh-linux* | \
		sh[1234]*)	sh_multilibs=${sh_cpu_target} ;;
		sh64* | sh5*)	sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;;
		sh-superh-*)	sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
		sh*-*-linux*)	sh_multilibs=m1,m3e,m4 ;;
		sh*-*-netbsd*)	sh_multilibs=m3,m3e,m4 ;;
		*) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
		esac
		if test x$with_fp = xno; then
			sh_multilibs="`echo $sh_multilibs|sed -e s/m4/sh4-nofpu/ -e s/,m4-[^,]*//g -e s/,m[23]e// -e s/m2a,m2a-single/m2a-nofpu/ -e s/m5-..m....,//g`"
		fi
	fi
	target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
	tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
	sh_multilibs=`echo $sh_multilibs,$sh_cpu_default | sed -e 's/[ 	,/][ 	,]*/ /g' -e 's/ $//' -e 's/^m/sh/' -e 's/ m/ sh/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
	for sh_multilib in ${sh_multilibs}; do
		case ${sh_multilib} in
		sh1 | sh2 | sh2e | sh3 | sh3e | \
		sh4 | sh4-single | sh4-single-only | sh4-nofpu | \
		sh4a | sh4a-single | sh4a-single-only | sh4a-nofpu | sh4al | \
		sh2a | sh2a-single | sh2a-single-only | sh2a-nofpu | \
		sh5-64media | sh5-64media-nofpu | \
		sh5-32media | sh5-32media-nofpu | \
		sh5-compact | sh5-compact-nofpu)
			tmake_file="${tmake_file} sh/t-mlib-${sh_multilib}"
			tm_defines="$tm_defines SUPPORT_`echo $sh_multilib|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
			;;
		*)
			echo "with_multilib_list=${sh_multilib} not supported."
			exit 1
			;;
		esac
	done
	if test x${enable_incomplete_targets} = xyes ; then
		tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1 SUPPORT_SH5_32MEDIA=1 SUPPORT_SH5_32MEDIA_NOFPU=1 SUPPORT_SH5_64MEDIA=1 SUPPORT_SH5_64MEDIA_NOFPU=1"
	fi
	use_fixproto=yes
	;;
sh-*-rtemscoff*)
	tmake_file="sh/t-sh t-rtems sh/t-rtems"
	tm_file="${tm_file} dbxcoff.h sh/coff.h sh/rtems.h rtems.h"
	;;
sh-*-rtems*)
	tmake_file="sh/t-sh sh/t-elf t-rtems sh/t-rtems"
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h"
	;;
sh-wrs-vxworks)
	tmake_file="$tmake_file sh/t-sh sh/t-elf sh/t-vxworks"
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/embed-elf.h sh/vxworks.h"
	;;
sh-*-*)
	tm_file="${tm_file} dbxcoff.h sh/coff.h"
	use_fixproto=yes
	;;
sparc-*-netbsdelf*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
	extra_options="${extra_options} sparc/long-double-switch.opt"
	;;
sparc64-*-openbsd*)
	tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp64-elf.h openbsd.h sparc/openbsd64.h"
	extra_options="${extra_options} sparc/little-endian.opt"
	gas=yes gnu_ld=yes
	with_cpu=ultrasparc
	;;
sparc-*-elf*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp-elf.h"
	tmake_file="sparc/t-elf sparc/t-crtfm"
	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
	use_fixproto=yes
	;;
sparc-*-linux*)		# SPARC's running GNU/Linux, libc6
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux.h"
	extra_options="${extra_options} sparc/long-double-switch.opt"
	tmake_file="${tmake_file} sparc/t-linux sparc/t-crtfm"
	;;
sparc-*-rtems*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h"
	tmake_file="sparc/t-elf sparc/t-crtfm t-rtems"
	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
	;;
sparc64-*-solaris2* | sparcv9-*-solaris2*)
	tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h"
	case ${target} in
	*-*-solaris2.1[0-9]*)
		tm_file="${tm_file} sol2-10.h"
		;;
	esac
	tm_file="${tm_file} sparc/sol2.h sparc/sol2-64.h sparc/sol2-bi.h"
	if test x$gnu_ld = xyes; then
		tm_file="${tm_file} sparc/sol2-gld.h sparc/sol2-gld-bi.h"
	fi
	if test x$gas = xyes; then
		tm_file="${tm_file} sparc/sol2-gas.h sparc/sol2-gas-bi.h"
	fi
	tm_file="${tm_file} tm-dwarf2.h"
	tmake_file="t-sol2 sparc/t-sol2 sparc/t-sol2-64 sparc/t-crtfm"
	if test x$gnu_ld = xyes; then
		tmake_file="$tmake_file t-slibgcc-elf-ver"
	else
		tmake_file="$tmake_file t-slibgcc-sld"
	fi
	c_target_objs="sol2-c.o"
	cxx_target_objs="sol2-c.o"
	extra_objs="sol2.o"
	tm_p_file="${tm_p_file} sol2-protos.h"
	extra_parts="crt1.o crti.o crtn.o gcrt1.o crtbegin.o crtend.o"
	case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
	  "":yes:* | yes:yes:* ) thread_file=posix ;;
	  "":*:yes | yes:*:yes ) thread_file=solaris ;;
	esac
	need_64bit_hwint=yes
	;;
sparc-*-solaris2*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h"
	case ${target} in
	*-*-solaris2.[0-6] | *-*-solaris2.[0-6].*)
		tm_file="${tm_file} sol2-6.h"
		;;
	*-*-solaris2.1[0-9]*)
		tm_file="${tm_file} sol2-10.h"
		;;
	esac
	tm_file="${tm_file} sparc/sol2.h"
	if test x$gnu_ld = xyes; then
		tm_file="${tm_file} sparc/sol2-gld.h"
	fi
	if test x$gas = xyes; then
		tm_file="${tm_file} sparc/sol2-gas.h"
	fi
	tmake_file="t-sol2 sparc/t-sol2 sparc/t-crtfm"
	if test x$gnu_ld = xyes; then
		tmake_file="$tmake_file t-slibgcc-elf-ver"
	else
		tmake_file="$tmake_file t-slibgcc-sld"
	fi
	case ${target} in
	*-*-solaris2.[0-6] | *-*-solaris2.[0-6].*)
		if test x$gnu_ld = xno; then
			tm_file="${tm_file} sparc/sol26-sld.h"
		fi
		;;
	*-*-solaris2.[789] | *-*-solaris2.1[0-9]*)
		tm_file="sparc/biarch64.h ${tm_file} sparc/sol2-bi.h"
		if test x$gnu_ld = xyes; then
			tm_file="${tm_file} sparc/sol2-gld-bi.h"
		fi
		if test x$gas = xyes; then
			tm_file="${tm_file} sparc/sol2-gas-bi.h"
		fi
		tm_file="${tm_file} tm-dwarf2.h"
		tmake_file="$tmake_file sparc/t-sol2-64"
		need_64bit_hwint=yes
		test x$with_cpu != x || with_cpu=v9
		;;
	esac
	c_target_objs="sol2-c.o"
	cxx_target_objs="sol2-c.o"
	extra_objs="sol2.o"
	tm_p_file="${tm_p_file} sol2-protos.h"
	extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o"
	case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
	  "":yes:* | yes:yes:* )
		case ${target} in
		  *-*-solaris2.[0-6] | *-*-solaris2.[0-6].*)
			thread_file=posix95
			;;
		  *)
			thread_file=posix
			;;
		esac
		;;
	  "":*:yes | yes:*:yes )
		thread_file=solaris
		;;
	esac
	;;
sparc-*-sysv4*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sysv4-only.h"
	tmake_file=t-svr4
	extra_parts="crtbegin.o crtend.o"
	use_fixproto=yes
	;;
sparc64-*-elf*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp64-elf.h"
	extra_options="${extra_options} sparc/little-endian.opt"
	tmake_file="${tmake_file} sparc/t-crtfm"
	extra_parts="crtbegin.o crtend.o"
	use_fixproto=yes
	;;
sparc64-*-freebsd*|ultrasparc-*-freebsd*)
	tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
	extra_options="${extra_options} sparc/long-double-switch.opt"
	tmake_file="${tmake_file} sparc/t-crtfm"
	case "x$with_cpu" in
		xultrasparc) ;;
		x) with_cpu=ultrasparc ;;
		*) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
	esac
	need_64bit_hwint=yes
	;;
sparc64-*-linux*)		# 64-bit SPARC's running GNU/Linux
	tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux64.h"
	extra_options="${extra_options} sparc/long-double-switch.opt"
	tmake_file="${tmake_file} sparc/t-linux sparc/t-linux64 sparc/t-crtfm"
	;;
sparc64-*-netbsd*)
	tm_file="sparc/biarch64.h ${tm_file}"
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
	extra_options="${extra_options} sparc/long-double-switch.opt"
	tmake_file="${tmake_file} sparc/t-netbsd64"
	;;
spu-*-elf*)
	tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h"
	tmake_file="spu/t-spu-elf"
	extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h"
	extra_modes=spu/spu-modes.def
	c_target_objs="${c_target_objs} spu-c.o"
	cxx_target_objs="${cxx_target_objs} spu-c.o"
	;;
strongarm-*-elf*)
	tm_file="arm/strongarm-elf.h dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h"
	tmake_file="arm/t-arm arm/t-strongarm-elf"
	out_file=arm/arm.c
	md_file=arm/arm.md
	extra_modes=arm/arm-modes.def
	use_fixproto=yes
	;;
strongarm-*-pe)
	tm_file="arm/semi.h arm/aout.h arm/coff.h dbxcoff.h arm/strongarm-coff.h arm/arm.h arm/pe.h arm/strongarm-pe.h"
	tmake_file="arm/t-arm arm/t-strongarm-pe"
	out_file=arm/arm.c
	md_file=arm/arm.md
	extra_modes=arm/arm-modes.def
	extra_options="${extra_options} arm/pe.opt"
	extra_objs=pe.o
	use_fixproto=yes
	;;
strongarm-*-kaos*)
	tm_file="arm/strongarm-elf.h dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h kaos.h arm/kaos-strongarm.h"
	tmake_file="arm/t-arm arm/t-strongarm-elf"
	out_file=arm/arm.c
	md_file=arm/arm.md
	extra_modes=arm/arm-modes.def
	;;
# LLVM LOCAL begin - TCE target
tce*-llvm*)
	use_fixproto=yes
    use_collect2=no

# this didn't have any effect - tce.md was still needed
#   md_file=""

	tm_p_file=""
	tmake_file="tce/t-tce"
   	tm_file="dbxelf.h elfos.h svr4.h ${tm_file}"
   	;;
# LLVM LOCAL end - TCE target
v850e1-*-*)
	target_cpu_default="TARGET_CPU_v850e1"
	tm_file="dbxelf.h elfos.h svr4.h v850/v850.h"
	tm_p_file=v850/v850-protos.h
	tmake_file=v850/t-v850e
	md_file=v850/v850.md
	out_file=v850/v850.c
	extra_options="${extra_options} v850/v850.opt"
	if test x$stabs = xyes
	then
		tm_file="${tm_file} dbx.h"
	fi
	use_collect2=no
	c_target_objs="v850-c.o"
	cxx_target_objs="v850-c.o"
	use_fixproto=yes
	;;
v850e-*-*)
	target_cpu_default="TARGET_CPU_v850e"
	tm_file="dbxelf.h elfos.h svr4.h v850/v850.h"
	tm_p_file=v850/v850-protos.h
	tmake_file=v850/t-v850e
	md_file=v850/v850.md
	out_file=v850/v850.c
	extra_options="${extra_options} v850/v850.opt"
	if test x$stabs = xyes
	then
		tm_file="${tm_file} dbx.h"
	fi
	use_collect2=no
	c_target_objs="v850-c.o"
	cxx_target_objs="v850-c.o"
	use_fixproto=yes
	;;
v850-*-*)
	target_cpu_default="TARGET_CPU_generic"
	tm_file="dbxelf.h elfos.h svr4.h ${tm_file}"
	tmake_file=v850/t-v850
	if test x$stabs = xyes
	then
		tm_file="${tm_file} dbx.h"
	fi
	use_collect2=no
	c_target_objs="v850-c.o"
	cxx_target_objs="v850-c.o"
	use_fixproto=yes
	;;
vax-*-bsd*)			# VAXen running BSD
	tm_file="${tm_file} vax/bsd.h"
	tmake_file=vax/t-memfuncs
	use_collect2=yes
	use_fixproto=yes
	;;
vax-*-sysv*)			# VAXen running system V
	tm_file="${tm_file} vax/vaxv.h"
	tmake_file=vax/t-memfuncs
	use_fixproto=yes
	;;
vax-*-netbsdelf*)
	tm_file="${tm_file} elfos.h netbsd.h netbsd-elf.h vax/elf.h vax/netbsd-elf.h"
	;;
vax-*-netbsd*)
	tm_file="${tm_file} netbsd.h netbsd-aout.h vax/netbsd.h"
	tmake_file=t-netbsd
	extra_parts=""
	use_collect2=yes
	;;
vax-*-openbsd*)
	tm_file="vax/vax.h vax/openbsd1.h openbsd.h vax/openbsd.h"
	use_collect2=yes
	;;
vax-*-ultrix*)			# VAXen running ultrix
	tm_file="${tm_file} vax/ultrix.h"
	tmake_file=vax/t-memfuncs
	use_fixproto=yes
	;;
xscale-*-elf)
	tm_file="arm/xscale-elf.h dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h"
	tmake_file="arm/t-arm arm/t-xscale-elf"
	out_file=arm/arm.c
	md_file=arm/arm.md
	extra_modes=arm/arm-modes.def
	use_fixproto=yes
	;;
xscale-*-coff)
	tm_file="arm/semi.h arm/aout.h arm/coff.h dbxcoff.h arm/xscale-coff.h arm/arm.h"
	tmake_file="arm/t-arm arm/t-xscale-coff"
	out_file=arm/arm.c
	md_file=arm/arm.md
	extra_modes=arm/arm-modes.def
	use_fixproto=yes
	;;
xstormy16-*-elf)
	# For historical reasons, the target files omit the 'x'.
	tm_file="dbxelf.h elfos.h svr4.h stormy16/stormy16.h"
	tm_p_file=stormy16/stormy16-protos.h
	md_file=stormy16/stormy16.md
	out_file=stormy16/stormy16.c
	extra_options=stormy16/stormy16.opt
	tmake_file="stormy16/t-stormy16"
	extra_parts="crtbegin.o crtend.o"
	use_fixproto=yes
	;;
xtensa-*-elf*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h xtensa/elf.h"
	tmake_file="xtensa/t-xtensa xtensa/t-elf"
	;;
xtensa-*-linux*)
	tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h xtensa/linux.h"
	tmake_file="${tmake_file} xtensa/t-xtensa xtensa/t-linux"
	;;
am33_2.0-*-linux*)
	tm_file="mn10300/mn10300.h dbxelf.h elfos.h linux.h mn10300/linux.h"
	tmake_file="${tmake_file} mn10300/t-linux"
	gas=yes gnu_ld=yes
	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
	use_collect2=no
	;;
m32c-*-elf*)
	tm_file="dbxelf.h elfos.h svr4.h ${tm_file}"
	c_target_objs="m32c-pragma.o"
	cxx_target_objs="m32c-pragma.o"
	use_fixproto=yes
 	;;
*)
	echo "*** Configuration ${target} not supported" 1>&2
	exit 1
	;;
esac

case ${target} in
i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1)
	tmake_file="${tmake_file} i386/t-gmm_malloc"
	;;
i[34567]86-*-linux* | x86_64-*-linux*)
	tmake_file="${tmake_file} i386/t-pmm_malloc"
	;;
i[34567]86-*-* | x86_64-*-*)
	tmake_file="${tmake_file} i386/t-gmm_malloc"
	;;
esac

# Support for --with-cpu and related options (and a few unrelated options,
# too).
case ${with_cpu} in
  yes | no)
    echo "--with-cpu must be passed a value" 1>&2
    exit 1
    ;;
esac

# If there is no $with_cpu option, try to infer one from ${target}.
# This block sets nothing except for with_cpu.
if test x$with_cpu = x ; then
  case ${target} in
    ep9312-*-*)
      # A Cirrus ARM variant.
      with_cpu="ep9312"
      ;;
# APPLE LOCAL begin mainline 2006-04-19 4434601
    i386-*-*)
      with_cpu=i386
      ;;
    i486-*-*)
      with_cpu=i486
      ;;
    i586-*-*)
      case ${target_noncanonical} in
        k6_2-*)
          with_cpu=k6-2
          ;;
        k6_3-*)
          with_cpu=k6-3
          ;;
        k6-*)
          with_cpu=k6
          ;;
        pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
          with_cpu=pentium-mmx
          ;;
        *)
          with_cpu=pentium
          ;;
      esac
      ;;
    i686-*-* | i786-*-*)
      case ${target_noncanonical} in
        k8-*|opteron-*|athlon_64-*)
          with_cpu=k8
          ;;
        athlon_xp-*|athlon_mp-*|athlon_4-*)
          with_cpu=athlon-4
          ;;
        athlon_tbird-*|athlon-*)
          with_cpu=athlon
          ;;
        pentium2-*)
          with_cpu=pentium2
          ;;
        pentium3-*|pentium3m-*)
          with_cpu=pentium3
          ;;
        pentium4-*|pentium4m-*)
          with_cpu=pentium4
          ;;
        prescott-*)
          with_cpu=prescott
          ;;
        nocona-*)
          with_cpu=nocona
          ;;
	# APPLE LOCAL begin mainline
	core2-*)
	  with_cpu=core2
	  ;;
	# APPLE LOCAL end mainline
        pentium_m-*)
          with_cpu=pentium-m
          ;;
        pentiumpro-*)
          with_cpu=pentiumpro
          ;;
        *)
          with_cpu=generic
          ;;
      esac
      ;;
    x86_64-*-*)
      case ${target_noncanonical} in
        k8-*|opteron-*|athlon_64-*)
          with_cpu=k8
          ;;
        nocona-*)
          with_cpu=nocona
          ;;
	# APPLE LOCAL begin mainline
	core2-*)
	  with_cpu=core2
	  ;;
	# APPLE LOCAL end mainline
        *)
          with_cpu=generic
          ;;
      esac
      ;;
# APPLE LOCAL end mainline 2006-04-19 4434601
    alphaev6[78]*-*-*)
      with_cpu=ev67
      ;;
    alphaev6*-*-*)
      with_cpu=ev6
      ;;
    alphapca56*-*-*)
      with_cpu=pca56
      ;;
    alphaev56*-*-*)
      with_cpu=ev56
      ;;
    alphaev5*-*-*)
      with_cpu=ev5
      ;;
    frv-*-*linux* | frv400-*-*linux*)
      with_cpu=fr400
      ;;
    frv550-*-*linux*)
      with_cpu=fr550
      ;;
    sparc*-*-*)
      with_cpu="`echo ${target} | sed 's/-.*$//'`"
      ;;
  esac
fi

# Similarly for --with-float
if test x$with_float = x; then
	case ${target} in
	ep9312-*-*)
		with_float=hard
		;;
	esac
fi

# Similarly for --with-schedule.
if test x$with_schedule = x; then
	case ${target} in
	hppa1* | parisc1*)
		# Override default PA8000 scheduling model.
		with_schedule=7100LC
		;;
	esac
fi

# Validate and mark as valid any --with options supported
# by this target.  In order to use a particular --with option
# you must list it in supported_defaults; validating the value
# is optional.  This case statement should set nothing besides
# supported_defaults.

supported_defaults=
case "${target}" in
	alpha*-*-*)
		supported_defaults="cpu tune"
		for which in cpu tune; do
			eval "val=\$with_$which"
			case "$val" in
			"" \
			| ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
			| pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
			| 21264a)
				;;
			*)
				echo "Unknown CPU used in --with-$which=$val" 1>&2
				exit 1
				;;
			esac
		done
		;;

	arm*-*-*)
		supported_defaults="arch cpu float tune fpu abi mode"
		for which in cpu tune; do
			# See if it matches any of the entries in arm-cores.def
			eval "val=\$with_$which"
			if [ x"$val" = x ] \
			    || grep "^ARM_CORE(\"$val\"," \
				    ${srcdir}/config/arm/arm-cores.def \
				    > /dev/null; then
			  # Ok
			  new_val=`grep "^ARM_CORE(\"$val\"," \
				${srcdir}/config/arm/arm-cores.def | \
				sed -e 's/^[^,]*,[ 	]*//' | \
				sed -e 's/,.*$//'`
			  eval "target_${which}_cname=$new_val"
			echo "For $val real value is $new_val"
			  true
			else
			  echo "Unknown CPU used in --with-$which=$val" 1>&2
			  exit 1
			fi
		done

		case "$with_arch" in
                # APPLE LOCAL begin ARM v7 support.
		"" \
		| armv[23456] | armv2a | armv3m | armv4t | armv5t \
		| armv5te | armv6j |armv6k | armv6z | armv6zk \
		| armv7-a \
		| iwmmxt | ep9312)
                # APPLE LOCAL end ARM v7 support.
			# OK
			;;
		*)
			echo "Unknown arch used in --with-arch=$with_arch" 1>&2
			exit 1
			;;
		esac

		case "$with_float" in
		"" \
		| soft | hard | softfp)
			# OK
			;;
		*)
			echo "Unknown floating point type used in --with-float=$with_float" 1>&2
			exit 1
			;;
		esac

		case "$with_fpu" in
                # APPLE LOCAL begin ARM v7 support, merge from Codesourcery.
		"" \
		| fpa | fpe2 | fpe3 | maverick | vfp | vfp3 | neon)
                # APPLE LOCAL end ARM v7 support, merge from Codesourcery.
			# OK
			;;
		*)
			echo "Unknown fpu used in --with-fpu=$with_fpu" 2>&1
			exit 1
			;;
		esac

		case "$with_abi" in
		"" \
		| apcs-gnu | atpcs | aapcs | iwmmxt )
			#OK
			;;
		*)
			echo "Unknown ABI used in --with-abi=$with_abi"
			exit 1
			;;
		esac

		case "$with_mode" in
		"" \
		| arm | thumb )
			#OK
			;;
		*)
			echo "Unknown mode used in --with-mode=$with_mode"
			exit 1
			;;
		esac

		if test "x$with_arch" != x && test "x$with_cpu" != x; then
			echo "Warning: --with-arch overrides --with-cpu=$with_cpu" 1>&2
		fi
		;;

	fr*-*-*linux*)
		supported_defaults=cpu
		case "$with_cpu" in
		fr400) ;;
		fr550) ;;
		*)
			echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
			exit 1
			;;
		esac
		;;

	m68k*-linux*)
		supported_defaults="cpu"
		case "$with_cpu" in
		"" | "m68020" | "m68030" | "m68040" | "m68060" | "m68020-40" | "m68020-60")
			# OK
			;;
		*)
			echo "Unknown CPU used in --with-cpu=$with_cpu, known values:"  1>&2
			echo "m68020 m68030 m68040 m68060 m68020-40 m68020-60" 1>&2
			exit 1
			;;
		esac
		;;

	hppa*-*-* | parisc*-*-*)
		supported_defaults="arch schedule"

		case "$with_arch" in
		"" | 1.0 | 1.1 | 2.0)
			# OK
			;;
		*)
			echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
			exit 1
			;;
		esac

		case "$with_schedule" in
		"" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
			# OK
			;;
		*)
			echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
			exit 1
			;;
		esac
		;;

# APPLE LOCAL begin mainline 2006-04-19 4434601
	i[34567]86-*-* | x86_64-*-*)
		supported_defaults="arch cpu tune"
		for which in arch cpu tune; do
			eval "val=\$with_$which"
			case ${val} in
			i386 | i486 \
			| i586 | pentium | pentium-mmx | winchip-c6 | winchip2 \
			| c3 | c3-2 | i686 | pentiumpro | pentium2 | pentium3 \
			| pentium4 | k6 | k6-2 | k6-3 | athlon | athlon-tbird \
			| athlon-4 | athlon-xp | athlon-mp \
			| prescott | pentium-m | pentium4m | pentium3m)
				case "${target}" in
				  x86_64-*-*)
				      echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
				      exit 1
				      ;;
				esac
				# OK
				;;
# APPLE LOCAL mainline
			"" | k8 | opteron | athlon64 | athlon-fx | nocona | core2 \
			   | generic)
				# OK
				;;
# APPLE LOCAL end mainline 2006-04-19 4434601
			*)
				echo "Unknown CPU given in --with-$which=$val." 1>&2
				exit 1
				;;
			esac
		done
		;;

	mips*-*-*)
		supported_defaults="abi arch float tune divide"

		case ${with_float} in
		"" | soft | hard)
			# OK
			;;
		*)
			echo "Unknown floating point type used in --with-float=$with_float" 1>&2
			exit 1
			;;
		esac

		case ${with_abi} in
		"" | 32 | o64 | n32 | 64 | eabi)
			# OK
			;;
		*)
			echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
			exit 1
			;;
		esac

		case ${with_divide} in
		"" | breaks | traps)
			# OK
			;;
		*)
			echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
			exit 1
		esac
		;;

	mt-*-*)
		supported_defaults="arch"

		case "$with_arch" in
		"" \
		| ms1-64-001 \
		| ms1-16-002 \
		| ms1-16-003 \
		| ms2 \
		| "")
			# OK
			;;
		*)
			echo "Unknown arch used in --with-arch=$with_arch" 1>&2
			exit 1
			;;
		esac
		;;

	powerpc*-*-* | rs6000-*-*)
		supported_defaults="cpu float tune"

		for which in cpu tune; do
			eval "val=\$with_$which"
			case ${val} in
			default32 | default64)
				with_which="with_$which"
				eval $with_which=
				;;
			405cr)
				tm_defines="${tm_defines} CONFIG_PPC405CR"
				eval "with_$which=405"
				;;
			"" | common \
			| power | power[23456] | powerpc | powerpc64 \
			| rios | rios1 | rios2 | rsc | rsc1 | rs64a \
			| 401 | 403 | 405 | 405fp | 440 | 440fp | 505 \
			| 601 | 602 | 603 | 603e | ec603e | 604 \
			| 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
			| 854[08] | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5)
				# OK
				;;
			*)
				echo "Unknown cpu used in --with-$which=$val." 1>&2
				exit 1
				;;
			esac
		done
		;;

	s390*-*-*)
		supported_defaults="arch mode tune"

		for which in arch tune; do
			eval "val=\$with_$which"
			case ${val} in
			"" | g5 | g6 | z900 | z990 | z9-109)
				# OK
				;;
			*)
				echo "Unknown cpu used in --with-$which=$val." 1>&2
				exit 1
				;;
			esac
		done

		case ${with_mode} in
		"" | esa | zarch)
			# OK
			;;
		*)
			echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
			exit 1
			;;
		esac
		;;

	sh[123456ble]-*-* | sh-*-*)
		supported_defaults="cpu"
		case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
		"" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
			# OK
			;;
		m2a | m2a-single | m2a-single-only | m2a-nofpu)
			;;
		m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
		        ;;
		*)
			echo "Unknown CPU used in --with-cpu=$with_cpu, known values:"  1>&2
			echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
			echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
			echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
			exit 1
			;;
		esac
		;;
	sparc*-*-*)
		supported_defaults="cpu float tune"

		for which in cpu tune; do
			eval "val=\$with_$which"
			case ${val} in
			"" | sparc | sparcv9 | sparc64 | sparc86x \
			| v7 | cypress | v8 | supersparc | sparclite | f930 \
			| f934 | hypersparc | sparclite86x | sparclet | tsc701 \
			| v9 | ultrasparc | ultrasparc3 | niagara)
				# OK
				;;
			*)
				echo "Unknown cpu used in --with-$which=$val" 1>&2
				exit 1
				;;
			esac
		done

		case ${with_float} in
		"" | soft | hard)
			# OK
			;;
		*)
			echo "Unknown floating point type used in --with-float=$with_float" 1>&2
			exit 1
			;;
		esac
		;;

	v850*-*-*)
		supported_defaults=cpu
		case ${with_cpu} in
		"" | v850e | v850e1)
			# OK
			;;
		*)
			echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
			exit 1
			;;
		esac
		;;
esac

# Set some miscellaneous flags for particular targets.
target_cpu_default2=
case ${target} in
	alpha*-*-*)
		if test x$gas = xyes
		then
			target_cpu_default2="MASK_GAS"
		fi
		;;

	arm*-*-*)
		if test x$target_cpu_cname = x
		then
			target_cpu_default2=TARGET_CPU_generic
                        # LLVM LOCAL begin arm default cpu
			case ${target} in
				armv5-*-* | armv5t-*-*)
					target_cpu_default2=TARGET_CPU_arm10tdmi
					;;
				armv5e-*-* | armv5te-*-*)
					target_cpu_default2=TARGET_CPU_arm1026ejs
					;;
				armv6-*-* | armv6j-*-*)
					target_cpu_default2=TARGET_CPU_arm1136js
					;;
				armv6k-*-*)
					target_cpu_default2=TARGET_CPU_mpcore
					;;
				armv6z-*-* | armv6zk-*-*)
					target_cpu_default2=TARGET_CPU_arm1176jzs
					;;
				armv6t2-*-*)
					target_cpu_default2=TARGET_CPU_arm1156t2s
					;;
				armv7-*-* | armv7a-*-* | armv7l-*-* | armv7-a-*-*)
					target_cpu_default2=TARGET_CPU_cortexa8
					;;
				armv7r-*-* | armv7-r-*-*)
					target_cpu_default2=TARGET_CPU_cortexr4
					;;
				armv7m-*-* | armv7-m-*-*)
					target_cpu_default2=TARGET_CPU_cortexm3
					;;
			esac
                        # LLVM LOCAL end arm default cpu
		else
			target_cpu_default2=TARGET_CPU_$target_cpu_cname
		fi
		;;

	m68k*-linux*)
		case "x$with_cpu" in
		x)
			# The most generic
			target_cpu_default2="(MASK_68020|MASK_68881|MASK_BITFIELD)"
			;;
		xm68020)
			target_cpu_default2="(MASK_68020|MASK_68881|MASK_BITFIELD)"
			;;
		xm68030)
			target_cpu_default2="(MASK_68030|MASK_68020|MASK_68881|MASK_BITFIELD)"
			;;
		xm68040)
			target_cpu_default2="(MASK_68040|MASK_68040_ONLY|MASK_68020|MASK_68881|MASK_BITFIELD)"
			;;
		xm68060)
			target_cpu_default2="(MASK_68060|MASK_68040_ONLY|MASK_68020|MASK_68881|MASK_BITFIELD)"
			;;
		xm68020-40)
			target_cpu_default2="(MASK_BITFIELD|MASK_68881|MASK_68020|MASK_68040)"
			;;
		xm68020-60)
			target_cpu_default2="(MASK_BITFIELD|MASK_68881|MASK_68020|MASK_68040|MASK_68060)"
			;;
		*)
			echo "Unknown CPU used in --with-cpu=$with_cpu"  1>&2
			exit 1
			;;
		esac
		;;

	hppa*-*-* | parisc*-*-*)
		target_cpu_default2="MASK_BIG_SWITCH"
		if test x$gas = xyes
		then
			target_cpu_default2="${target_cpu_default2}|MASK_GAS|MASK_JUMP_IN_DELAY"
		fi
		;;

	mips*-*-*)
		if test x$gnu_ld = xyes
		then
			target_cpu_default2="MASK_SPLIT_ADDRESSES"
		fi
		case ${target} in
			mips*el-*-*)
				tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
				;;
		esac
		if test "x$enable_gofast" = xyes
		then
			tm_defines="US_SOFTWARE_GOFAST $tm_defines"
			tmake_file="mips/t-gofast $tmake_file"
		else
			tmake_file="mips/t-mips $tmake_file"
		fi
		;;

	powerpc*-*-* | rs6000-*-*)
		# FIXME: The PowerPC port uses the value set at compile time,
		# although it's only cosmetic.
		if test "x$with_cpu" != x
		then
			target_cpu_default2="\\\"$with_cpu\\\""
		fi
		out_file=rs6000/rs6000.c
                # LLVM LOCAL begin
                out_cxx_file=rs6000/llvm-rs6000.cpp
		c_target_objs="${c_target_objs} rs6000-c.o"
		cxx_target_objs="${cxx_target_objs} rs6000-c.o"
		tmake_file="rs6000/t-rs6000 ${tmake_file}"

                if test x$enable_e500_double = xyes
                then
                        tm_file="$tm_file rs6000/e500-double.h"
                fi
		;;

	sh[123456ble]*-*-* | sh-*-*)
		c_target_objs="${c_target_objs} sh-c.o"
		cxx_target_objs="${cxx_target_objs} sh-c.o"
		;;

	sparc*-*-*)
		# Some standard aliases.
		case x$with_cpu in
		xsparc)
			with_cpu=v7
			;;
		xsparcv9 | xsparc64)
			with_cpu=v9
			;;
		esac

		# The SPARC port checks this value at compile-time.
		target_cpu_default2="TARGET_CPU_$with_cpu"
		;;
	v850*-*-*)
		# FIXME: The v850 is "special" in that it does not support
		# runtime CPU selection, only --with-cpu.
		case "x$with_cpu" in
		x)
			;;
		xv850e)
			target_cpu_default2="TARGET_CPU_$with_cpu"
			;;
		esac
		;;
esac

t=
all_defaults="abi cpu arch tune schedule float mode fpu divide"
for option in $all_defaults
do
	eval "val=\$with_$option"
	if test -n "$val"; then
		case " $supported_defaults " in
		*" $option "*)
			;;
		*)
			echo "This target does not support --with-$option." 2>&1
			echo "Valid --with options are: $supported_defaults" 2>&1
			exit 1
			;;
		esac

		if test "x$t" = x
		then
			t="{ \"$option\", \"$val\" }"
		else
			t="${t}, { \"$option\", \"$val\" }"
		fi
	fi
done

if test "x$t" = x
then
	configure_default_options="{ { NULL, NULL} }"
else
	configure_default_options="{ ${t} }"
fi

if test "$target_cpu_default2" != ""
then
	if test "$target_cpu_default" != ""
	then
		target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
	else
		target_cpu_default=$target_cpu_default2
	fi
fi
