# GCC build-, host- and target-specific configuration file.
# Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.

#This file is part of GNU CC.

#GNU CC 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.

#GNU CC 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 GNU CC; see the file COPYING.  If not, write to
#the Free Software Foundation, 59 Temple Place - Suite 330,
#Boston, MA 02111-1307, USA.

# This is the GCC build-, host- and target-specific configuration file
# where a configuration type, as recognized and generated by config.bfd,
# is mapped to different system-specific definitions and files.  This is
# invoked by the autoconf-generated configure script, called for build,
# host and target in that order, setting ${machine} to each.  Putting it
# in a separate shell file lets us skip running autoconf when modifying
# build-, host- and target-specific information.

# This file switches on the shell variable ${machine}, and also uses the
# following shell variables:
#
#  with_*		Various variables as set by configure.
#
#  enable_threads_flag	Either the name, yes or no depending on whether
#			threads support was requested.
#
#  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 machine.
#
#  tm_file		A list of target macro files, if different from
#			"$cpu_type/$cpu_type.h".
#
#  tm_p_file		Location of file with declarations for functions
#			in $out_file.
#
#  out_file		The name of the machine description C support
#			file, if different from "$cpu_type/$cpu_type.c".
#
#  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".
#
#  float_format		Set to the symbolic name for the floating-point
#			formats used for this machine, if different from
#			"i64".  Used to derive a header file name to
#			include, like "vax" for "float-vax.h".  If no such
#			file is wanted, set to "none".
#
#  extra_objs		List of extra objects that should be linked into
#			the compiler proper (cc1, cc1obj, cc1plus)
#			depending on target.
#
#  extra_headers	List of used header files from the directory
#			ginclude.
#
#  host_xmake_file	List of host-specific makefile-fragments.
#
#  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.
#
#  host_extra_objs	List of extra host-dependant objects that should
#			be linked into the compiler proper.
#
#  host_extra_gcc_objs	List of extra host-dependant objects that should
#			be linked into the gcc driver.
#
#  c_target_objs	List of extra target-dependant objects that be
#			linked into the C compiler only.
#  
#  cxx_target_objs	List of extra target-dependant objects that be
#			linked into the C++ compiler only.
#  
#  build_xm_defines	List of macros to define when compiling for the
#			build machine.
#
#  build_xm_file	List of files to include when compiling for the
#			build machine.
#
#  host_xm_defines	List of macros to define when compiling for the
#			host machine.
#
#  host_xm_file		List of files to include when compiling for the
#			host machine.
#
#  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.
#
#  build_install_headers_dir
#			Target to use when installing header files.
#
#  host_truncate_target
#			Non-empty if the target name should be truncated
#			on this host, due to filename length issues.
#
#  gdb_needs_out_file_path
#			Set to yes if gdb needs a dir command with
#			`dirname $out_file`.
#
#  build_exeext		Set to the suffix, if the build machine requires
#			executables to have a file name suffix.
#
#  host_exeext		Set to the suffix, if the host machine requires
#			executables to have a file name suffix.
#
#  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.

# The following variables are used in each case-construct to build up the
# outgoing variables:
#
#  xmake_file		Makefile-fragment when this system is as a host,
#			for host_xmake_file.
#
#  extra_host_objs	List of extra objects that should be linked into
#			the compiler proper when this system is a host,
#			for host_extra_objs.
#
#  install_headers_dir	Makefile-target for how the header file directory
#			is installed, when this system is a build system,
#			for build_install_headers_dir.
#
#  truncate_target	Non-empty if the target name should be truncated
#			when this system is a host, due to filename length
#			issues.  For host_truncate_target.
#
#  exeext		The suffix for executables on this system.
#
#  gnu_ld		Set to yes or no depending on whether the target
#			system normally uses GNU ld.

out_file=
xmake_file=
tmake_file=
extra_headers=
extra_passes=
extra_parts=
extra_programs=
extra_objs=
extra_host_objs=
extra_gcc_objs=
c_target_objs=
cxx_target_objs=
xm_defines=
float_format=
# Set this to force installation and use of collect2.
use_collect2=
# Set this to override the default target model.
target_cpu_default=
# Set this to control how the header file directory is installed.
install_headers_dir=install-headers-tar
# Set this if directory names should be truncated to 14 characters.
truncate_target=
# Set this if gdb needs a dir command with `dirname $out_file`
gdb_needs_out_file_path=
# Set this if the build machine requires executables to have a
# file name suffix.
exeext=
# 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"
enable_threads=$enable_threads_flag

# Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
# updated in each machine entry.
tm_p_file=
cpu_type=`echo $machine | sed 's/-.*$//'`
case $machine in
alpha*-*-*)
	cpu_type=alpha
	;;
strongarm*-*-*)
	cpu_type=arm
	;;
arm*-*-*)
	cpu_type=arm
	;;
xscale-*-*)
	cpu_type=arm
	;;
c*-convex-*)
	cpu_type=convex
	;;
i[34567]86-*-*)
	cpu_type=i386
	;;
hppa*-*-*)
	cpu_type=pa
	;;
m68000-*-*)
	cpu_type=m68k
	;;
mips*-*-*)
	cpu_type=mips
	;;
pj*-*-*)
	cpu_type=pj
	;;
powerpc*-*-*)
	cpu_type=rs6000
	;;
sparc*-*-*)
	cpu_type=sparc
	;;
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
# On a.out targets, we need to use collect2.
case $machine in
*-*-*aout*)
	use_collect2=yes
	;;
esac	

# Common parts for GNU/Linux, GNU/Hurd and OpenBSD systems.
case $machine in
*-*-linux*)
	xm_defines="POSIX"
	;;
*-*-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.
	xm_defines=POSIX
	tm_file="${cpu_type}/gnu.h"
	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
	# GNU always uses ELF.
	elf=yes
	# GNU tools are the only tools.
	gnu_ld=yes
	gas=yes
	# These details are the same as for Linux.
	xmake_file=x-linux
	# But here we need a little extra magic.
	tmake_file="t-linux t-gnu"
	case $machine in
	i[34567]86-*-*)
		tm_file="${cpu_type}/${cpu_type}.h i386/att.h linux.h i386/linux.h gnu.h ${tm_file}"
		;;
	mips*-*-*)
		tm_file="svr4.h ${cpu_type}/${cpu_type}.h ${tm_file}"
		;;
	esac
	;;
*-*-openbsd*)
	tm_file=${cpu_type}/openbsd.h
	tmake_file="t-libc-ok t-openbsd"
	xm_defines=POSIX
	# don't depend on processor x-fragments as well
	xmake_file=none
	if test x$enable_threads = xyes; then
		thread_file='posix'
		tmake_file="${tmake_file} t-openbsd-thread"
	fi
	;;
esac

case $machine in
# Support site-specific machine types.
*local*)
	rest=`echo $machine | 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}/x-$rest
	then xmake_file=${cpu_type}/x-$rest
	fi
	if test -f $srcdir/config/${cpu_type}/t-$rest
	then tmake_file=${cpu_type}/t-$rest
	fi
	;;
1750a-*-*)
	# 1750a is only supported as a target.
	case "$build,$host" in 1750a*,* | *,1750a* )
		echo "*** $machine is only supported as a target" >&2
		exit 1
	esac
	;;
a29k-*-bsd* | a29k-*-sym1*)
	tm_file="${tm_file} a29k/unix.h"
	xm_defines=USG
	xmake_file=a29k/x-unix
	use_collect2=yes
	;;
a29k-*-udi | a29k-*-coff)
	tm_file="${tm_file} dbxcoff.h a29k/udi.h"
	tmake_file=a29k/t-a29kbare
	;;
a29k*-*-rtems*)
	tm_file=a29k/rtems.h
	tmake_file="a29k/t-a29kbare t-rtems"
	if test x$enable_threads = xyes; then
	  thread_file='rtems'
	fi
	;;
a29k-wrs-vxworks*)
	tm_file="${tm_file} dbxcoff.h a29k/udi.h a29k/vx29k.h"
	tmake_file=a29k/t-vx29k
	extra_parts="crtbegin.o crtend.o"
	thread_file='vxworks'
	;;
a29k-*-*)			# Default a29k environment.
	use_collect2=yes
	;;
alpha-*-interix)
	tm_file="${tm_file} alpha/alpha32.h interix.h alpha/alpha-interix.h"

	# GAS + IEEE_CONFORMANT+IEEE (no inexact);
	#target_cpu_default="MASK_GAS|MASK_IEEE_CONFORMANT|MASK_IEEE"

	# GAS + IEEE_CONFORMANT
	target_cpu_default="MASK_GAS|MASK_IEEE_CONFORMANT"

	xm_defines=USG
	xm_file="alpha/xm-alpha-interix.h xm-interix.h"
	xmake_file=x-interix
	tmake_file="alpha/t-alpha alpha/t-interix alpha/t-ieee"
	if test x$enable_threads = xyes ; then
		thread_file='posix'
	fi
	if test x$stabs = xyes ; then
		tm_file="${tm_file} dbxcoff.h"
	fi
	#prefix='$$INTERIX_ROOT'/usr/contrib
	#local_prefix='$$INTERIX_ROOT'/usr/contrib
	;;
alpha*-*-linux*ecoff*)
	xm_defines=POSIX
	tm_file="${tm_file} alpha/linux-ecoff.h alpha/linux.h"
	target_cpu_default="MASK_GAS"
	tmake_file="alpha/t-alpha alpha/t-ieee"
	gas=no
	xmake_file=none
	gas=yes gnu_ld=yes
	;;
alpha*-*-linux*libc1*)
	tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h"
	target_cpu_default="MASK_GAS"
	tmake_file="t-linux t-linux-gnulibc1 alpha/t-alpha alpha/t-crtbe alpha/t-ieee"
	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
	xmake_file=none
	gas=yes gnu_ld=yes
	if test x$enable_threads = xyes; then
		thread_file='posix'
	fi
	;;
alpha*-*-linux*)
	tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h"
	target_cpu_default="MASK_GAS"
	tmake_file="t-linux alpha/t-crtbe alpha/t-alpha alpha/t-ieee"
	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
	xmake_file=none
	gas=yes gnu_ld=yes
	if test x$enable_threads = xyes; then
		thread_file='posix'
	fi
	;;
alpha*-*-freebsd*)
	xm_defines=POSIX
	tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h"
	target_cpu_default="MASK_GAS"
	tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee"
	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
	xmake_file=none
	gas=yes gnu_ld=yes
	stabs=yes
	case x${enable_threads} in
	xyes | xpthreads | xposix)
		thread_file='posix'
		tmake_file="${tmake_file} t-freebsd-thread"
		;;
	esac
	;;
alpha*-*-netbsd*)
	xm_defines=POSIX
	tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h"
	target_cpu_default="MASK_GAS"
	tmake_file="alpha/t-crtbe alpha/t-alpha alpha/t-ieee"
	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
	xmake_file=none
	gas=yes gnu_ld=yes
	;;

alpha*-*-openbsd*)
	# 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*)
	xm_defines=POSIX
	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-osf"
	xmake_file=alpha/x-osf
	case $machine in
	  *-*-osf1*)
	    tm_file="${tm_file} alpha/osf.h alpha/osf12.h alpha/osf2or3.h"
	    ;;
	  *-*-osf[23]*)
	    tm_file="${tm_file} alpha/osf.h alpha/osf2or3.h"
	    ;;
	  *-*-osf4*)
	    tm_file="${tm_file} alpha/osf.h"
	    tmake_file="$tmake_file alpha/t-osf4"
	    # Some versions of OSF4 (specifically X4.0-9 296.7) have
	    # a broken tar, so we use cpio instead.
	    install_headers_dir=install-headers-cpio
	    ;;
	  *-*-osf5*)
	    tm_file="${tm_file} alpha/osf.h alpha/osf5.h"
	    tmake_file="$tmake_file alpha/t-osf4"
	    float_format=i128
	    ;;
	esac
	case $machine in
	  *-*-osf4.0[b-z] | *-*-osf4.[1-9]* | *-*-osf5*)
	    target_cpu_default=MASK_SUPPORT_ARCH
	    ;;
	esac
	;;
alpha*-*-vxworks*)
	xm_defines=POSIX
	tm_file="${tm_file} dbx.h alpha/vxworks.h"
	tmake_file="alpha/t-alpha alpha/t-ieee"
	if [ x$gas != xyes ]
	then
		extra_passes="mips-tfile mips-tdump"
	fi
	use_collect2=yes
	thread_file='vxworks'
	;;
alpha*-dec-vms*)
	xm_defines=POSIX
	tm_file=alpha/vms.h
	xm_file=alpha/xm-vms.h
	tmake_file="alpha/t-alpha alpha/t-vms alpha/t-ieee"
	;;
arm*-*-rtems*)
	tm_file=arm/rtems-elf.h
	tmake_file="arm/t-arm-elf t-rtems"
	if test x$enable_threads = xyes; then
	  thread_file='rtems'
	fi
	extra_parts="crtinit.o crtfini.o"
	;;
arc-*-elf*)
	extra_parts="crtinit.o crtfini.o"
	;;
arm-*-coff* | armel-*-coff*)
	tm_file=arm/coff.h
	tmake_file=arm/t-arm-coff
	;;
arm-*-vxworks*)
	tm_file=arm/vxarm.h
	tmake_file=arm/t-arm-coff
	thread_file='vxworks'
	;;
arm-*-riscix1.[01]*)		# Acorn RISC machine (early versions)
	tm_file=arm/riscix1-1.h
	use_collect2=yes
	;;
arm-*-riscix*)			# Acorn RISC machine
	if test x$gas = xyes
	then
	    tm_file=arm/rix-gas.h
	else
	    tm_file=arm/riscix.h
	fi
	xmake_file=arm/x-riscix
	tmake_file=arm/t-riscix
	use_collect2=yes
	;;
arm-semi-aout | armel-semi-aout)
	tm_file=arm/semi.h
	tmake_file=arm/t-semi
	;;
arm-semi-aof | armel-semi-aof)
	tm_file=arm/semiaof.h
	tmake_file=arm/t-semiaof
	;;
arm*-*-netbsd*)
	tm_file=arm/netbsd.h
	tmake_file="t-netbsd arm/t-netbsd"
	use_collect2=yes
	;;
arm*-*-linux*)			# ARM GNU/Linux with ELF
	xmake_file=x-linux
	tm_file="arm/linux-elf.h"
	tmake_file="t-linux arm/t-linux"
	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
	gnu_ld=yes
	case x${enable_threads} in
	x | xyes | xpthreads | xposix)
		thread_file='posix'
		;;
	esac
	;;
arm*-*-uclinux*)		# ARM ucLinux
	tm_file=arm/uclinux-elf.h
	tmake_file=arm/t-arm-elf
	;;
arm*-*-aout)
	tm_file=arm/aout.h
	tmake_file=arm/t-arm-aout
	;;
arm*-*-ecos-elf)
	tm_file=arm/ecos-elf.h
	tmake_file=arm/t-arm-elf
	;; 
arm*-*-elf)
	tm_file=arm/unknown-elf.h
	tmake_file=arm/t-arm-elf
	;;
arm*-*-conix*)
	tm_file=arm/conix-elf.h
	tmake_file=arm/t-arm-elf
	;;
arm*-*-oabi)
	tm_file=arm/unknown-elf-oabi.h
	tmake_file=arm/t-arm-elf
	;;
arm-*-pe*)
	tm_file=arm/pe.h
	tmake_file=arm/t-pe
	extra_objs="pe.o"
	;;
avr-*-*)
	;;
c1-convex-*)			# Convex C1
	target_cpu_default=1
	use_collect2=yes
	;;
c2-convex-*)			# Convex C2
	target_cpu_default=2
	use_collect2=yes
	;;
c32-convex-*)
	target_cpu_default=4
	use_collect2=yes
	;;
c34-convex-*)
	target_cpu_default=8
	use_collect2=yes
	;;
c38-convex-*)
	target_cpu_default=16		
	use_collect2=yes
	;;
c4x-*-rtems*)
	cpu_type=c4x
	tmake_file="c4x/t-c4x t-rtems"
	tm_file=c4x/rtems.h
	if test x$enable_threads = xyes; then
	  thread_file='rtems'
	fi
	;;
c4x-*)
	cpu_type=c4x
	float_format=c4x
	tmake_file=c4x/t-c4x
	;;
clipper-intergraph-clix*)
	tm_file="${tm_file} svr3.h clipper/clix.h"
	xm_defines=USG
	extra_headers=va-clipper.h
	extra_parts="crtbegin.o crtend.o"
	install_headers_dir=install-headers-cpio
	;;
d30v-*)
	float_format=i64
	;;
dsp16xx-*)
	;;
elxsi-elxsi-*)
	use_collect2=yes
	;;
fr30-*-elf)
	tm_file="fr30/fr30.h"
	tmake_file=fr30/t-fr30
	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
	;;
h8300-*-rtems*)
	tmake_file="h8300/t-h8300 t-rtems"
	tm_file=h8300/rtems.h
	if test x$enable_threads = xyes; then
	  thread_file='rtems'
	fi
	float_format=i32
	;;
h8300-*-*)
	float_format=i32
	;;
hppa*-*-linux*)
	target_cpu_default="(MASK_PA_11 | MASK_GAS | MASK_JUMP_IN_DELAY)"
	tm_file="${tm_file} pa/elf.h linux.h pa/pa-linux.h"
	tmake_file="t-linux pa/t-linux"
	extra_parts="crtbegin.o crtend.o"
	xmake_file=none
	gas=yes gnu_ld=yes
	if test x$enable_threads = xyes; then
		thread_file='posix'
	fi
	;;
hppa*-*-openbsd*)
	target_cpu_default="MASK_PA_11"
	tmake_file=pa/t-openbsd
	;;
hppa1.1-*-rtems*)
	tm_file="pa/pa-pro.h ${tm_file} pa/pa-pro-end.h libgloss.h pa/rtems.h"
	tmake_file="pa/t-pro t-rtems"
	if test x$enable_threads = xyes; then
	  thread_file='rtems'
	fi
	;;
hppa1.1-*-pro*)
	target_cpu_default="(MASK_JUMP_IN_DELAY | MASK_PORTABLE_RUNTIME | MASK_GAS | MASK_NO_SPACE_REGS | MASK_SOFT_FLOAT)"
	tm_file="${tm_file} pa/pa32-regs.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 pa/som.h pa/pa-osf.h"
	use_collect2=yes
	;;
hppa1.1-*-rtems*)
	target_cpu_default="(MASK_JUMP_IN_DELAY | MASK_PORTABLE_RUNTIME | MASK_GAS | MASK_NO_SPACE_REGS | MASK_SOFT_FLOAT)"
	tm_file="${tm_file} pa/pa32-regs.h elfos.h pa/elf.h pa/pa-pro-end.h libgloss.h pa/rtems.h"
	tmake_file=pa/t-pro
	;;
hppa1.0-*-osf*)
	tm_file="${tm_file} pa/pa32-regs.h pa/som.h pa/pa-osf.h"
	use_collect2=yes
	;;
hppa1.1-*-bsd*)
	tm_file="${tm_file} pa/pa32-regs.h pa/som.h"
	target_cpu_default="MASK_PA_11"
	use_collect2=yes
	;;
hppa1.0-*-bsd*)
	tm_file="${tm_file} pa/pa32-regs.h pa/som.h"
	use_collect2=yes
	;;
hppa1.0-*-hpux7*)
	tm_file="pa/pa-oldas.h ${tm_file} pa/pa32-regs.h pa/som.h pa/pa-hpux7.h"
	xm_defines=USG
	xmake_file=pa/x-pa-hpux
	if test x$gas = xyes
	then
		tm_file="${tm_file} pa/gas.h"
	fi
	install_headers_dir=install-headers-cpio
	use_collect2=yes
	;;
hppa1.0-*-hpux8.0[0-2]*)
	tm_file="${tm_file} pa/pa32-regs.h pa/som.h pa/pa-hpux.h"
	xm_defines=USG
	xmake_file=pa/x-pa-hpux
	if test x$gas = xyes
	then
		tm_file="${tm_file} pa/pa-gas.h"
	else
		tm_file="pa/pa-oldas.h ${tm_file}"
	fi
	install_headers_dir=install-headers-cpio
	use_collect2=yes
	;;
hppa1.1-*-hpux8.0[0-2]*)
	target_cpu_default="MASK_PA_11"
	tm_file="${tm_file} pa/pa32-regs.h pa/som.h pa/pa-hpux.h"
	xm_defines=USG
	xmake_file=pa/x-pa-hpux
	if test x$gas = xyes
	then
		tm_file="${tm_file} pa/pa-gas.h"
	else
		tm_file="pa/pa-oldas.h ${tm_file}"
	fi
	install_headers_dir=install-headers-cpio
	use_collect2=yes
	;;
hppa1.1-*-hpux8*)
	target_cpu_default="MASK_PA_11"
	tm_file="${tm_file} pa/pa32-regs.h pa/som.h pa/pa-hpux.h"
	xm_defines=USG
	xmake_file=pa/x-pa-hpux
	if test x$gas = xyes
	then
		tm_file="${tm_file} pa/pa-gas.h"
	fi
	install_headers_dir=install-headers-cpio
	use_collect2=yes
	;;
hppa1.0-*-hpux8*)
	tm_file="${tm_file} pa/pa32-regs.h pa/som.h pa/pa-hpux.h"
	xm_defines=USG
	xmake_file=pa/x-pa-hpux
	if test x$gas = xyes
	then
		tm_file="${tm_file} pa/pa-gas.h"
	fi
	install_headers_dir=install-headers-cpio
	use_collect2=yes
	;;
hppa1.1-*-hpux10* | hppa2*-*-hpux10*)
	target_cpu_default="MASK_PA_11"
	tm_file="${tm_file} pa/pa32-regs.h pa/long_double.h pa/som.h pa/pa-hpux.h pa/pa-hpux10.h"
	float_format=i128
	xm_defines=USG
	xmake_file=pa/x-pa-hpux
	tmake_file=pa/t-pa
	if test x$gas = xyes
	then
		tm_file="${tm_file} pa/pa-gas.h"
	fi
	if test x$enable_threads = x; then
	    enable_threads=$have_pthread_h
	fi
	case x${enable_threads} in
	xyes | xdce)
		tmake_file="${tmake_file} pa/t-dce-thr"
		;;
	esac
	install_headers_dir=install-headers-cpio
	use_collect2=yes
	;;
hppa1.0-*-hpux10*)
	tm_file="${tm_file} pa/pa32-regs.h pa/long_double.h pa/som.h pa/pa-hpux.h pa/pa-hpux10.h"
	float_format=i128
	xm_defines=USG
	xmake_file=pa/x-pa-hpux
	tmake_file=pa/t-pa
	if test x$gas = xyes
	then
		tm_file="${tm_file} pa/pa-gas.h"
	fi
	if test x$enable_threads = x; then
	    enable_threads=$have_pthread_h
	fi
	case x${enable_threads} in
	xyes | xdce)
		tmake_file="${tmake_file} pa/t-dce-thr"
		;;
	esac
	install_headers_dir=install-headers-cpio
	use_collect2=yes
	;;
hppa*64*-*-hpux11*)
	xm_defines=USG
	xmake_file=pa/x-pa-hpux
	tmake_file=pa/t-pa
	tm_file="pa/pa64-start.h ${tm_file} pa/pa64-regs.h pa/long_double.h pa/elf.h pa/pa-hpux.h pa/pa-hpux11.h pa/pa-64.h"
	float_format=i128
	tmake_file=pa/t-pa64
	target_cpu_default="(MASK_PA_11|MASK_PA_20|MASK_GAS)"

	if [ x$gas = xyes ]
	then
		tm_file="${tm_file} pa/pa-gas.h"
	fi
#	if [ x$enable_threads = x ]; then
#	    enable_threads=$have_pthread_h
#	fi
#	if [ x$enable_threads = xyes ]; then
#		thread_file='dce'
#		tmake_file="${tmake_file} pa/t-dce-thr"
#	fi
	install_headers_dir=install-headers-cpio
	use_collect2=yes
	;;
hppa1.1-*-hpux11* | hppa2*-*-hpux11*)
	target_cpu_default="MASK_PA_11"
	tm_file="${tm_file} pa/pa32-regs.h pa/long_double.h pa/som.h pa/pa-hpux.h pa/pa-hpux11.h"
	float_format=i128
	xm_defines=USG
	xmake_file=pa/x-pa-hpux
	tmake_file=pa/t-pa
	if test x$gas = xyes
	then
		tm_file="${tm_file} pa/pa-gas.h"
	fi
#	if test x$enable_threads = x; then
#	    enable_threads=$have_pthread_h
#	fi
#	if test x$enable_threads = xyes; then
#		thread_file='dce'
#		tmake_file="${tmake_file} pa/t-dce-thr"
#	fi
	install_headers_dir=install-headers-cpio
	use_collect2=yes
	;;
hppa1.0-*-hpux11*)
	tm_file="${tm_file} pa/pa32-regs.h pa/long_double.h pa/som.h pa/pa-hpux.h pa/pa-hpux11.h"
	float_format=i128
	xm_defines=USG
	xmake_file=pa/x-pa-hpux
	if test x$gas = xyes
	then
		tm_file="${tm_file} pa/pa-gas.h"
	fi
#	if test x$enable_threads = x; then
#	    enable_threads=$have_pthread_h
#	fi
#	if test x$enable_threads = xyes; then
#		thread_file='dce'
#		tmake_file="${tmake_file} pa/t-dce-thr"
#	fi
	install_headers_dir=install-headers-cpio
	use_collect2=yes
	;;
hppa1.1-*-hpux* | hppa2*-*-hpux*)
	target_cpu_default="MASK_PA_11"
	tm_file="${tm_file} pa/pa32-regs.h pa/som.h pa/pa-hpux.h pa/pa-hpux9.h"
	xm_defines=USG
	xmake_file=pa/x-pa-hpux
	if test x$gas = xyes
	then
		tm_file="${tm_file} pa/pa-gas.h"
	fi
	install_headers_dir=install-headers-cpio
	use_collect2=yes
	;;
hppa1.0-*-hpux*)
	tm_file="${tm_file} pa/pa32-regs.h pa/som.h pa/pa-hpux.h pa/pa-hpux9.h"
	xm_defines=USG
	xmake_file=pa/x-pa-hpux
	if test x$gas = xyes
	then
		tm_file="${tm_file} pa/pa-gas.h"
	fi
	install_headers_dir=install-headers-cpio
	use_collect2=yes
	;;
hppa1.1-*-hiux* | hppa2*-*-hiux*)
	target_cpu_default="MASK_PA_11"
	tm_file="${tm_file} pa/pa32-regs.h pa/som.h pa/pa-hpux.h pa/pa-hiux.h"
	xm_defines=USG
	xmake_file=pa/x-pa-hpux
	if test x$gas = xyes
	then
		tm_file="${tm_file} pa/pa-gas.h"
	fi
	install_headers_dir=install-headers-cpio
	use_collect2=yes
	;;
hppa1.0-*-hiux*)
	tm_file="${tm_file} pa/pa32-regs.h pa/som.h pa/pa-hpux.h pa/pa-hiux.h"
	xm_defines=USG
	xmake_file=pa/x-pa-hpux
	if test x$gas = xyes
	then
		tm_file="${tm_file} pa/pa-gas.h"
	fi
	install_headers_dir=install-headers-cpio
	use_collect2=yes
	;;
hppa*-*-lites*)
	tm_file="${tm_file} pa/pa32-regs.h elfos.h pa/elf.h"
	target_cpu_default="MASK_PA_11"
	use_collect2=yes
	;;
hppa*-*-mpeix*)
	tm_file="${tm_file} pa/pa32-regs.h pa/long_double.h pa/som.h pa/pa-mpeix.h"
	xmake_file=pa/x-pa-mpeix 
	echo "You must use gas. Assuming it is already installed." 
	install_headers_dir=install-headers-tar
	use_collect2=yes 
	;; 
i370-*-opened*)			 # IBM 360/370/390 Architecture
	xm_defines='USG FATAL_EXIT_CODE=12'
	tm_file=i370/oe.h
	xmake_file=i370/x-oe
	tmake_file=i370/t-oe
	;;
i370-*-mvs*)
	xm_defines='USG FATAL_EXIT_CODE=12'
	tm_file=i370/mvs.h
	tmake_file=i370/t-mvs
	;;
i370-*-linux*)
	xmake_file=x-linux
	tm_file="i370/linux.h ${tm_file}"
	tmake_file="t-linux i370/t-linux"
	# broken_install=yes
	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
	# extra_parts="crtbegin.o crtend.o"
	gnu_ld=yes
	gas=yes
	elf=yes
	if test x$enable_threads = xyes; then
		thread_file='posix'
	fi
	;;
i[34567]86-*-chorusos*)
	xm_defines='USG POSIX'
	tm_file="i386/i386.h i386/att.h elfos.h i386/i386afe.h i386/i386elf.h i386/chorus.h"
	tmake_file=i386/t-i386elf
	xmake_file=x-svr4
	case x${enable_threads} in
	  xyes | xpthreads | xposix)
		thread_file='posix'
		;;
	esac
	;;
i[34567]86-*-elf*)
	xm_defines='USG POSIX'
	tm_file="i386/i386.h i386/att.h elfos.h i386/i386afe.h i386/i386elf.h"
	tmake_file=i386/t-i386elf
	xmake_file=x-svr4
	;;
i[34567]86-ibm-aix*)		# IBM PS/2 running AIX
        if test x$gas = xyes
	then
		tm_file=i386/aix386.h
		extra_parts="crtbegin.o crtend.o"
		tmake_file=i386/t-crtstuff
	else
		tm_file=i386/aix386ng.h
		use_collect2=yes
	fi
	xm_defines=USG
	xmake_file=i386/x-aix
	;;
i[34567]86-ncr-sysv4*)		# NCR 3000 - ix86 running system V.4
	xm_defines="USG POSIX SMALL_ARG_MAX"
	xmake_file=i386/x-ncr3000
	if test x$stabs = xyes -a x$gas = xyes
	then
		tm_file=i386/sysv4gdb.h
	else
		tm_file=i386/sysv4.h
	fi
	extra_parts="crtbegin.o crtend.o"
	tmake_file=i386/t-crtpic
	;;
i[34567]86-next-*)
	tm_file=i386/next.h
	tmake_file=i386/t-next
	xmake_file=i386/x-next
	extra_objs=nextstep.o
	extra_parts="crtbegin.o crtend.o"
	if test x$enable_threads = xyes; then
		thread_file='mach'
	fi
	;;
i[34567]86-*-netware)		# Intel 80386's running netware
	tm_file=i386/netware.h
	tmake_file=i386/t-netware
	;;
i[34567]86-sequent-bsd*) 		# 80386 from Sequent
	use_collect2=yes
	if test x$gas = xyes
	then
		tm_file=i386/seq-gas.h
	else
		tm_file=i386/sequent.h
	fi
	;;
i[34567]86-sequent-ptx1*)
	xm_defines=USG
	xmake_file=i386/x-sysv3
	tm_file=i386/seq-sysv3.h
	tmake_file=i386/t-crtstuff
	extra_parts="crtbegin.o crtend.o"
	install_headers_dir=install-headers-cpio
	;;
i[34567]86-sequent-ptx2* | i[34567]86-sequent-sysv3*)
	xm_defines=USG
	xmake_file=i386/x-sysv3
	tm_file=i386/seq2-sysv3.h
	tmake_file=i386/t-crtstuff
	extra_parts="crtbegin.o crtend.o"
	install_headers_dir=install-headers-cpio
	;;
i[34567]86-sequent-ptx4* | i[34567]86-sequent-sysv4*)
	if test x$gas = xyes
	then
		tm_file="${tm_file} usegas.h"
	fi
	xm_defines="USG POSIX SMALL_ARG_MAX"
	xmake_file=x-svr4
	tm_file=i386/ptx4-i.h
	tmake_file=t-svr4
	extra_parts="crtbegin.o crtend.o"
	install_headers_dir=install-headers-cpio
	;;
i386-sun-sunos*)		# Sun i386 roadrunner
	xm_defines=USG
	tm_file=i386/sun.h
	use_collect2=yes
	;;
i[34567]86-wrs-vxworks*)
	tm_file=i386/vxi386.h
	tmake_file=i386/t-i386bare
	thread_file='vxworks'
	;;
i[34567]86-*-aout*)
	tm_file=i386/i386-aout.h
	tmake_file=i386/t-i386bare
	;;
i[34567]86-*-beoself* | i[34567]86-*-beos*)
	xm_defines=USG
	tmake_file='i386/t-beos i386/t-crtpic'
	tm_file=i386/beos-elf.h
	xmake_file=i386/x-beos
	extra_parts='crtbegin.o crtend.o'
	;;
i[34567]86-*-bsdi* | i[34567]86-*-bsd386*)
	tm_file=i386/bsd386.h
#	tmake_file=t-libc-ok
	;;
i[34567]86-*-bsd*)
	tm_file=i386/386bsd.h
#	tmake_file=t-libc-ok
# Next line turned off because both 386BSD and BSD/386 use GNU ld.
#	use_collect2=yes
	;;
i[34567]86-*-freebsd[12] | i[34567]86-*-freebsd[12].* | i[34567]86-*-freebsd*aout*)
	tm_file="i386/freebsd-aout.h i386/perform.h"
	tmake_file=t-freebsd
	;;
i[34567]86-*-freebsd*)
	tm_file="i386/i386.h i386/att.h svr4.h freebsd.h i386/i386afe.h i386/freebsd.h i386/perform.h"
	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
	tmake_file=t-freebsd
	gas=yes
	gnu_ld=yes
	stabs=yes
	case x${enable_threads} in
	xyes | xpthreads | xposix)
		thread_file='posix'
		tmake_file="${tmake_file} t-freebsd-thread"
		;;
	esac
	;;
i[34567]86-*-netbsd*)
	tm_file=i386/netbsd.h
	tmake_file=t-netbsd
	use_collect2=yes
	;;
i[34567]86-*-openbsd*)
	# we need collect2 until our bug is fixed...
	use_collect2=yes
	;;
i[34567]86-*-coff*)
	tm_file=i386/i386-coff.h
	tmake_file=i386/t-i386bare
	;;
i[34567]86-*-isc*)		# 80386 running ISC system
	xm_defines=USG
	case $machine in
	  i[34567]86-*-isc[34]*)
	    xmake_file=i386/x-isc3
	    ;;
	  *)
	    xmake_file=i386/x-isc
	    ;;
	esac
        if test x$gas = xyes -a x$stabs = xyes
	then
		tm_file=i386/iscdbx.h
		tmake_file=i386/t-svr3dbx
		extra_parts="svr3.ifile svr3z.ifile"
	else
		tm_file=i386/isccoff.h
		tmake_file=i386/t-crtstuff
		extra_parts="crtbegin.o crtend.o"
	fi
	tmake_file="$tmake_file i386/t-i386bare"
	install_headers_dir=install-headers-cpio
	;;
i[34567]86-*-linux*oldld*)	# Intel 80386's running GNU/Linux
				# with a.out format using
				# pre BFD linkers
	tmake_file="t-linux-aout i386/t-crtstuff"
	tm_file=i386/linux-oldld.h
	gnu_ld=yes
	float_format=i386
	;;
i[34567]86-*-linux*aout*)	# Intel 80386's running GNU/Linux
				# with a.out format
	tmake_file="t-linux-aout i386/t-crtstuff"
	tm_file=i386/linux-aout.h
	gnu_ld=yes
	float_format=i386
	;;
i[34567]86-*-linux*libc1)	# Intel 80386's running GNU/Linux
				# with ELF format using the
				# GNU/Linux C library 5
	xmake_file=x-linux	
	tm_file="i386/i386.h i386/att.h linux.h i386/i386afe.h i386/linux.h"
	tmake_file="t-linux t-linux-gnulibc1 i386/t-crtstuff"
	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
	gnu_ld=yes
	float_format=i386
	if test x$enable_threads = xyes; then
		thread_file='single'
	fi
	;;
i[34567]86-*-linux*)	# Intel 80386's running GNU/Linux
			# with ELF format using glibc 2
			# aka GNU/Linux C library 6
	xmake_file=x-linux
	tm_file="i386/i386.h i386/att.h linux.h i386/i386afe.h i386/linux.h"
	tmake_file="t-linux i386/t-crtstuff"
	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
	gnu_ld=yes
	float_format=i386
	if test x$enable_threads = xyes; then
		thread_file='posix'
	fi
	;;
i[34567]86-*-gnu*)
	float_format=i386
	;;
i[34567]86-go32-msdos | i[34567]86-*-go32*)
	echo "GO32/DJGPP V1.X is no longer supported. Use *-pc-msdosdjgpp for DJGPP V2.X instead."
	exit 1
	;;
i[34567]86-pc-msdosdjgpp*)
	xm_file=i386/xm-djgpp.h
	tm_file=i386/djgpp.h
	tmake_file=i386/t-djgpp
	xmake_file=i386/x-djgpp
	gnu_ld=yes
	gas=yes
	exeext=.exe
	float_format=none
	case $host in *pc-msdosdjgpp*)
		target_alias=djgpp
		;;
	esac
	;;
i[34567]86-moss-msdos* | i[34567]86-*-moss*)
	tm_file="i386/i386.h i386/att.h linux.h i386/i386afe.h i386/linux.h i386/moss.h"
	tmake_file=t-libc-ok
	gnu_ld=yes
	gas=yes
	;;
i[34567]86-*-lynxos*)
	if test x$gas = xyes
	then
		tm_file=i386/lynx.h
	else
		tm_file=i386/lynx-ng.h
	fi
	tmake_file=i386/t-i386bare
	xmake_file=x-lynx
	;;
i[34567]86-*-mach*)
	tm_file=i386/mach.h
#	tmake_file=t-libc-ok
	use_collect2=yes
	;;
i[34567]86-*-osfrose*)		# 386 using OSF/rose
        if test x$elf = xyes
	then
		tm_file=i386/osfelf.h
		use_collect2=
	else
		tm_file=i386/osfrose.h
		use_collect2=yes
	fi
	xmake_file=i386/x-osfrose
	tmake_file=i386/t-osf
	extra_objs=halfpic.o
	;;
i[34567]86-go32-rtems*)
	cpu_type=i386
	tm_file=i386/go32-rtems.h
	tmake_file=t-rtems
	if test x$enable_threads = xyes; then
	  thread_file='rtems'
	fi
	;;
i[34567]86-*-rtemscoff*)
	cpu_type=i386
	tm_file=i386/rtems.h
	tmake_file="i386/t-i386bare t-rtems"
	if test x$enable_threads = xyes; then
	  thread_file='rtems'
	fi
	;;
i[34567]86-*-rtems*|i[34567]86-*-rtemself*)
	cpu_type=i386
	tm_file=i386/rtemself.h
	extra_parts="crtbegin.o crtend.o crti.o crtn.o"
	tmake_file="i386/t-rtems-i386 i386/t-crtstuff t-rtems"
	if test x$enable_threads = xyes; then
	  thread_file='rtems'
	fi
	;;
i[34567]86-*-sco3.2v5*)	# 80386 running SCO Open Server 5
	xm_defines=USG
	xmake_file=i386/x-sco5
	install_headers_dir=install-headers-cpio
	tm_file=i386/sco5.h
	if test x$gas = xyes
	then
		tm_file="usegas.h ${tm_file}"
		tmake_file=i386/t-sco5gas
	else
		tmake_file=i386/t-sco5
	fi
	tmake_file="$tmake_file i386/t-i386bare"
	extra_parts="crti.o crtbegin.o crtend.o crtbeginS.o crtendS.o"
	;;
i[34567]86-*-sco3.2v4*) 	# 80386 running SCO 3.2v4 system
	xm_defines="USG BROKEN_LDEXP SMALL_ARG_MAX"
	xmake_file=i386/x-sco4
	install_headers_dir=install-headers-cpio
        if test x$stabs = xyes
	then
		tm_file=i386/sco4dbx.h
		tmake_file=i386/t-svr3dbx
		extra_parts="svr3.ifile svr3z.rfile"
	else
		tm_file=i386/sco4.h
		tmake_file=i386/t-crtstuff
		extra_parts="crtbegin.o crtend.o"
	fi
	tmake_file="$tmake_file i386/t-i386bare"
	# The default EAFS filesystem supports long file names.
	# Truncating the target makes $host != $target which
	# makes gcc think it is doing a cross-compile.
	# truncate_target=yes
	;;
i[34567]86-*-sco*)	 	# 80386 running SCO system
	xmake_file=i386/x-sco
	install_headers_dir=install-headers-cpio
        if test x$stabs = xyes
	then
		tm_file=i386/scodbx.h
		tmake_file=i386/t-svr3dbx
		extra_parts="svr3.ifile svr3z.rfile"
	else
		tm_file=i386/sco.h
		extra_parts="crtbegin.o crtend.o"
		tmake_file=i386/t-crtstuff
	fi
	tmake_file="$tmake_file i386/t-i386bare"
	truncate_target=yes
	;;
i[34567]86-*-solaris2*)
	xm_defines="USG POSIX SMALL_ARG_MAX"
	tm_file=i386/sol2.h
	if test x$gas = xyes; then
		# Only needed if gas does not support -s
		tm_file="i386/sol2gas.h ${tm_file}"
	fi
	tmake_file="i386/t-i386bare i386/t-sol2"
	extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o"
	xmake_file=x-svr4
	if test x${enable_threads} = x; then
	    enable_threads=$have_pthread_h
	    if test x${enable_threads} = x; then
		enable_threads=$have_thread_h
	    fi
	fi
	if test x${enable_threads} = xyes; then
	    if test x${have_pthread_h} = xyes; then
		thread_file='posix'
	    else
		thread_file='solaris'
	    fi
	fi
	;;
i[34567]86-*-sysv5*)           # Intel x86 on System V Release 5
       xm_defines="USG POSIX"
       tm_file=i386/sysv5.h
       if test x$stabs = xyes
       then
               tm_file="${tm_file} dbx.h"
       fi
       tmake_file="i386/t-i386bare i386/t-crtpic"
       xmake_file=x-svr4
       extra_parts="crtbegin.o crtend.o"
       if test x$enable_threads = xyes; then
	       thread_file='posix'
       fi
       ;;
i[34567]86-*-sysv4*)		# Intel 80386's running system V.4
	xm_defines="USG POSIX SMALL_ARG_MAX"
	tm_file=i386/sysv4.h
	if test x$stabs = xyes
	then
		tm_file="${tm_file} dbx.h"
	fi
	tmake_file="i386/t-i386bare i386/t-crtpic"
	xmake_file=x-svr4
	extra_parts="crtbegin.o crtend.o"
	;;
i[34567]86-*-udk*)      # Intel x86 on SCO UW/OSR5 Dev Kit
	xm_defines="USG POSIX"
	tm_file=i386/udk.h
	tmake_file="i386/t-i386bare i386/t-crtpic i386/t-udk"
	xmake_file=x-svr4
	extra_parts="crtbegin.o crtend.o"
	install_headers_dir=install-headers-cpio
	;;
i[34567]86-*-osf1*)		# Intel 80386's running OSF/1 1.3+
	cpu_type=i386
	xm_file=i386/xm-osf1elf.h
	xm_defines='USG POSIX USE_C_ALLOCA SMALL_ARG_MAX'
	if test x$stabs = xyes
	then
		tm_file=i386/osf1elfgdb.h
	else
		tm_file=i386/osf1elf.h
	fi
	tmake_file=i386/t-osf1elf
	xmake_file=i386/x-osf1elf
	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
	;;
i[34567]86-*-sysv*)		# Intel 80386's running system V
	xm_defines=USG
	xmake_file=i386/x-sysv3
	if test x$gas = xyes
	then
		if test x$stabs = xyes
		then
			tm_file=i386/svr3dbx.h
			tmake_file=i386/t-svr3dbx
			extra_parts="svr3.ifile svr3z.rfile"
		else
			tm_file=i386/svr3gas.h
			extra_parts="crtbegin.o crtend.o"
			tmake_file=i386/t-crtstuff
		fi
	else
		tm_file=i386/sysv3.h
		extra_parts="crtbegin.o crtend.o"
		tmake_file=i386/t-crtstuff
	fi
	tmake_file="$tmake_file i386/t-crtpic"
	;;
i386-*-vsta)			# Intel 80386's running VSTa kernel
	xm_file=i386/xm-vsta.h
	tm_file=i386/vsta.h
	tmake_file=i386/t-vsta
	xmake_file=i386/x-vsta
	;;
i[34567]86-*-win32)
	xm_defines=POSIX
	xm_file=i386/xm-cygwin.h
	float_format=i386
	tmake_file=i386/t-cygwin
	tm_file=i386/win32.h
	xmake_file=i386/x-cygwin
	extra_objs=winnt.o
	if test x$enable_threads = xyes; then
		thread_file='win32'
	fi
	exeext=.exe
	;;
i[34567]86-*-pe | i[34567]86-*-cygwin*)
	xm_defines=POSIX
	xm_file=i386/xm-cygwin.h
	float_format=i386
	tmake_file=i386/t-cygwin
	tm_file=i386/cygwin.h
	xmake_file=i386/x-cygwin
	extra_objs=winnt.o
	if test x$enable_threads = xyes; then
		thread_file='win32'
	fi
	exeext=.exe
	;;
i[34567]86-*-mingw32*)
	tm_file=i386/mingw32.h
	float_format=i386
	xm_defines=USG
	xm_file=i386/xm-mingw32.h
	tmake_file="i386/t-cygwin i386/t-mingw32"
	extra_objs=winnt.o
	xmake_file=i386/x-cygwin
	if test x$enable_threads = xyes; then
		thread_file='win32'
	fi
	exeext=.exe
	case $machine in
		*mingw32msv*)
			;;
		*minwg32crt* | *mingw32*)
			tm_file="${tm_file} i386/crtdll.h"
			;;
	esac
	;;
i[34567]86-*-uwin*)
	tm_file=i386/uwin.h
	tmake_file="i386/t-cygwin i386/t-uwin"
	extra_objs=winnt.o
	xmake_file=i386/x-cygwin
	if test x$enable_threads = xyes; then
		thread_file='win32'
	fi
	exeext=.exe
	;;
i[34567]86-*-interix*)
	tm_file="i386/i386-interix.h interix.h"
	xm_file="i386/xm-i386-interix.h xm-interix.h"
	xm_defines="USG"
	tmake_file="i386/t-interix"
	extra_objs=interix.o
	xmake_file=x-interix
	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-dg-dgux*)
	xm_defines="USG POSIX"
	out_file=i386/dgux.c
	tm_file=i386/dgux.h
	tmake_file=i386/t-dgux
	xmake_file=i386/x-dgux
	install_headers_dir=install-headers-cpio
      ;;
i860-alliant-*)		# Alliant FX/2800
	tm_file="${tm_file} svr4.h i860/sysv4.h i860/fx2800.h"
	tmake_file=i860/t-fx2800
	extra_parts="crtbegin.o crtend.o"
	;;
i860-*-bsd*)
	tm_file="${tm_file} i860/bsd.h"
	if test x$gas = xyes
	then
		tm_file="${tm_file} i860/bsd-gas.h"
	fi
	use_collect2=yes
	;;
i860-*-mach*)
	tm_file="${tm_file} i860/mach.h"
	tmake_file=t-libc-ok
	;;
i860-*-osf*)			# Intel Paragon XP/S, OSF/1AD
	tm_file="${tm_file} svr3.h i860/paragon.h"
	xm_defines=USG
	;;
i860-*-sysv3*)
	tm_file="${tm_file} svr3.h i860/sysv3.h"
	xm_defines=USG
	extra_parts="crtbegin.o crtend.o"
	;;
i860-*-sysv4*)
	tm_file="${tm_file} svr4.h i860/sysv4.h"
	xm_defines=USG
	xmake_file=i860/x-sysv4
	tmake_file=t-svr4
	extra_parts="crtbegin.o crtend.o"
	;;
i960-wrs-vxworks5 | i960-wrs-vxworks5.0*)
	tm_file="${tm_file} i960/vx960.h"
	tmake_file=i960/t-vxworks960
	use_collect2=yes
	thread_file='vxworks'
	c_target_objs="i960-c.o"
	cxx_target_objs="i960-c.o"
	;;
i960-wrs-vxworks5* | i960-wrs-vxworks)
	tm_file="${tm_file} dbxcoff.h i960/i960-coff.h i960/vx960-coff.h"
	tmake_file=i960/t-vxworks960
	use_collect2=yes
	thread_file='vxworks'
	c_target_objs="i960-c.o"
	cxx_target_objs="i960-c.o"
	;;
i960-wrs-vxworks*)
	tm_file="${tm_file} i960/vx960.h"
	tmake_file=i960/t-vxworks960
	use_collect2=yes
	thread_file='vxworks'
	c_target_objs="i960-c.o"
	cxx_target_objs="i960-c.o"
	;;
i960-*-coff*)
	tm_file="${tm_file} dbxcoff.h i960/i960-coff.h libgloss.h"
	tmake_file=i960/t-960bare
	use_collect2=yes
	c_target_objs="i960-c.o"
	cxx_target_objs="i960-c.o"
	;;
i960-*-rtems)
	tmake_file="i960/t-960bare t-rtems"
	tm_file="${tm_file} dbxcoff.h i960/rtems.h"
	use_collect2=yes
	if test x$enable_threads = xyes; then
	  thread_file='rtems'
	fi
	c_target_objs="i960-c.o"
	cxx_target_objs="i960-c.o"
	;;
i960-*-*)			# Default i960 environment.
	use_collect2=yes
	c_target_objs="i960-c.o"
	cxx_target_objs="i960-c.o"
	;;
ia64*-*-elf*)
	tm_file=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
	float_format=i386
	;;
ia64*-*-linux*)
	tm_file=ia64/linux.h
	tmake_file="t-linux ia64/t-ia64 ia64/t-glibc"
	target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
	if test x$enable_threads = xyes; then
		thread_file='posix'
	fi
	float_format=i386
	;;
ia64*-*-hpux*)
	tm_file="ia64/ia64.h svr4.h ia64/sysv4.h ia64/hpux.h"
	tmake_file="ia64/t-ia64 ia64/t-hpux"
	target_cpu_default="MASK_GNU_AS"
	if test x$enable_threads = xyes; then
		thread_file='posix'
	fi
	float_format=i386
	;;
m32r-*-elf*)
	extra_parts="crtinit.o crtfini.o"
	;;
# m68hc11 and m68hc12 share the same machine description.
m68hc11-*-*|m6811-*-*)
	tm_file="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"
        ;;
m68hc12-*-*|m6812-*-*)
	tm_file="m68hc11/m68hc12.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"
        ;;
m68000-convergent-sysv*)
	tm_file=m68k/ctix.h
	xm_defines=USG
	use_collect2=yes
	extra_headers=math-68881.h
	;;
m68000-hp-bsd*)			# HP 9000/200 running BSD
	tm_file=m68k/hp2bsd.h
	xmake_file=m68k/x-hp2bsd
	use_collect2=yes
	extra_headers=math-68881.h
	;;
m68000-hp-hpux*)		# HP 9000 series 300
	xm_defines="USG"
	if test x$gas = xyes
	then
		xmake_file=m68k/x-hp320g
		tm_file=m68k/hp310g.h
	else
		xmake_file=m68k/x-hp320
		tm_file=m68k/hp310.h
	fi
	install_headers_dir=install-headers-cpio
	use_collect2=yes
	extra_headers=math-68881.h
	;;
m68000-sun-sunos3*)
	tm_file=m68k/sun2.h
	use_collect2=yes
	extra_headers=math-68881.h
	;;
m68000-sun-sunos4*)
	tm_file=m68k/sun2o4.h
	use_collect2=yes
	extra_headers=math-68881.h
	;;
m68000-att-sysv*)
	xm_defines=USG
	if test x$gas = xyes
	then
		tm_file=m68k/3b1g.h
	else
		tm_file=m68k/3b1.h
	fi
	use_collect2=yes
	extra_headers=math-68881.h
	;;
m68k-apple-aux*)		# Apple Macintosh running A/UX
	xm_defines="USG AUX"
	tmake_file=m68k/t-aux
	install_headers_dir=install-headers-cpio
	extra_headers=math-68881.h
	extra_parts="crt1.o mcrt1.o maccrt1.o crt2.o crtn.o"
	tm_file=
	if test "$gnu_ld" = yes
	then
		tm_file="${tm_file} m68k/auxgld.h"
	else
		tm_file="${tm_file} m68k/auxld.h"
	fi
	if test "$gas" = yes
	then
		tm_file="${tm_file} m68k/auxgas.h"
	else
		tm_file="${tm_file} m68k/auxas.h"
	fi
	tm_file="${tm_file} m68k/a-ux.h"
	float_format=m68k
	;;
m68k-apollo-*)
	tm_file=m68k/apollo68.h
	xmake_file=m68k/x-apollo68
	use_collect2=yes
	extra_headers=math-68881.h
	float_format=m68k
	;;
m68k-altos-sysv*)		   # Altos 3068
	if test x$gas = xyes
	then
	        tm_file=m68k/altos3068.h
		xm_defines=USG
	else
		echo "The Altos is supported only with the GNU assembler" 1>&2
		exit 1
	fi
	extra_headers=math-68881.h
        ;;
m68k-bull-sysv*)		# Bull DPX/2
	if test x$gas = xyes
	then
		if test x$stabs = xyes
		then
			tm_file=m68k/dpx2cdbx.h
		else
			tm_file=m68k/dpx2g.h
		fi
	else
		tm_file=m68k/dpx2.h
	fi
	xm_defines=USG
	xmake_file=m68k/x-dpx2
	use_collect2=yes
	extra_headers=math-68881.h
	;;
m68k-atari-sysv4*)              # Atari variant of V.4.
	tm_file=m68k/atari.h
	xm_defines=USG
	tmake_file=t-svr4
	extra_parts="crtbegin.o crtend.o"
	extra_headers=math-68881.h
	float_format=m68k
	;;
m68k-motorola-sysv*)
	tm_file=m68k/mot3300.h
	xm_defines=USG
	if test x$gas = xyes
	then
		xmake_file=m68k/x-mot3300-gas
		if test x$gnu_ld = xyes
		then
			tmake_file=m68k/t-mot3300-gald
		else
			tmake_file=m68k/t-mot3300-gas
			use_collect2=yes
		fi
	else
		xmake_file=m68k/x-mot3300
		if test x$gnu_ld = xyes
		then
			tmake_file=m68k/t-mot3300-gld
		else
			tmake_file=m68k/t-mot3300
			use_collect2=yes
		fi
	fi
	gdb_needs_out_file_path=yes
	extra_parts="crt0.o mcrt0.o"
	extra_headers=math-68881.h
	float_format=m68k
	;;
m68k-ncr-sysv*)			# NCR Tower 32 SVR3
	tm_file=m68k/tower-as.h
	xm_defines=USG
	xmake_file=m68k/x-tower
	extra_parts="crtbegin.o crtend.o"
	extra_headers=math-68881.h
	;;
m68k-plexus-sysv*)
	tm_file=m68k/plexus.h
	xm_defines=USG
	use_collect2=yes
	extra_headers=math-68881.h
	;;
m68k-tti-*)
	tm_file=m68k/pbb.h
	xm_defines=USG
	extra_headers=math-68881.h
	;;
m68k-crds-unos*)
	xm_defines="USG unos"
	xmake_file=m68k/x-crds
	tm_file=m68k/crds.h
	use_collect2=yes
	extra_headers=math-68881.h
	;;
m68k-cbm-sysv4*)		# Commodore variant of V.4.
	tm_file=m68k/amix.h
	xm_defines=USG
	xmake_file=m68k/x-amix
	tmake_file=t-svr4
	extra_parts="crtbegin.o crtend.o"
	extra_headers=math-68881.h
	float_format=m68k
	;;
m68k-ccur-rtu)
	tm_file=m68k/ccur-GAS.h
	xmake_file=m68k/x-ccur
	extra_headers=math-68881.h
	use_collect2=yes
	float_format=m68k
	;;
m68k-hp-bsd4.4*)		# HP 9000/3xx running 4.4bsd
	tm_file=m68k/hp3bsd44.h
	use_collect2=yes
	extra_headers=math-68881.h
	float_format=m68k
	;;
m68k-hp-bsd*)			# HP 9000/3xx running Berkeley Unix
	tm_file=m68k/hp3bsd.h
	use_collect2=yes
	extra_headers=math-68881.h
	float_format=m68k
	;;
m68k-isi-bsd*)
	if test x$with_fp = xno
	then
		tm_file=m68k/isi-nfp.h
	else
		tm_file=m68k/isi.h
		float_format=m68k
	fi
	use_collect2=yes
	extra_headers=math-68881.h
	;;
m68k-hp-hpux7*)	# HP 9000 series 300 running HPUX version 7.
	xm_defines="USG"
	if test x$gas = xyes
	then
		xmake_file=m68k/x-hp320g
		tm_file=m68k/hp320g.h
	else
		xmake_file=m68k/x-hp320
		tm_file=m68k/hpux7.h
	fi
	install_headers_dir=install-headers-cpio
	use_collect2=yes
	extra_headers=math-68881.h
	float_format=m68k
	;;
m68k-hp-hpux*)	# HP 9000 series 300
	xm_defines="USG"
	if test x$gas = xyes
	then
		xmake_file=m68k/x-hp320g
		tm_file=m68k/hp320g.h
	else
		xmake_file=m68k/x-hp320
		tm_file=m68k/hp320.h
	fi
	install_headers_dir=install-headers-cpio
	use_collect2=yes
	extra_headers=math-68881.h
	float_format=m68k
	;;
m68k-sun-mach*)
	tm_file=m68k/sun3mach.h
	use_collect2=yes
	extra_headers=math-68881.h
	float_format=m68k
	;;
m68k-sony-newsos3*)
	if test x$gas = xyes
	then
		tm_file=m68k/news3gas.h
	else
		tm_file=m68k/news3.h
	fi
	use_collect2=yes
	extra_headers=math-68881.h
	float_format=m68k
	;;
m68k-sony-bsd* | m68k-sony-newsos*)
	if test x$gas = xyes
	then
		tm_file=m68k/newsgas.h
	else
		tm_file=m68k/news.h
	fi
	use_collect2=yes
	extra_headers=math-68881.h
	float_format=m68k
	;;
m68k-next-nextstep2*)
	tm_file=m68k/next21.h
	tmake_file=m68k/t-next
	xmake_file=m68k/x-next
	extra_objs=nextstep.o
	extra_headers=math-68881.h
	use_collect2=yes
	float_format=m68k
        ;;
m68k-next-nextstep[34]*)
	tm_file=m68k/next.h
	tmake_file=m68k/t-next
	xmake_file=m68k/x-next
	extra_objs=nextstep.o
	extra_parts="crtbegin.o crtend.o"
	extra_headers=math-68881.h
	float_format=m68k
	if test x$enable_threads = xyes; then
		thread_file='mach'
	fi
	;;
m68k-sun-sunos3*)
	if test x$with_fp = xno
	then
		tm_file=m68k/sun3n3.h
	else
		tm_file=m68k/sun3o3.h
		float_format=m68k
	fi
	use_collect2=yes
	extra_headers=math-68881.h
	;;
m68k-sun-sunos*)			# For SunOS 4 (the default).
	if test x$with_fp = xno
	then
		tm_file=m68k/sun3n.h
	else
		tm_file=m68k/sun3.h
		float_format=m68k
	fi
	use_collect2=yes
	extra_headers=math-68881.h
	;;
m68k-wrs-vxworks*)
	tm_file=m68k/vxm68k.h
	tmake_file=m68k/t-vxworks68
	extra_headers=math-68881.h
	thread_file='vxworks'
	float_format=m68k
	;;
m68k-*-aout*)
	tmake_file=m68k/t-m68kbare
	tm_file="m68k/m68k-aout.h libgloss.h"
	extra_headers=math-68881.h
	float_format=m68k
	;;
m68k-*-coff*)
	tmake_file=m68k/t-m68kbare
	tm_file="m68k/m68k-coff.h dbx.h"
	extra_headers=math-68881.h
	float_format=m68k
	;;
m68020-*-elf* | m68k-*-elf*)
	tm_file="m68k/m68020-elf.h"
	xm_defines=USG
	tmake_file=m68k/t-m68kelf
	header_files=math-68881.h
	;;
m68k-*-lynxos*)
	if test x$gas = xyes
	then
		tm_file=m68k/lynx.h
	else
		tm_file=m68k/lynx-ng.h
	fi
	xmake_file=x-lynx
	tmake_file=m68k/t-lynx
	extra_headers=math-68881.h
	float_format=m68k
	;;
m68k*-*-netbsd*)
	tm_file=m68k/netbsd.h
	tmake_file=t-netbsd
	float_format=m68k
	use_collect2=yes
	;;
m68k*-*-openbsd*)
	float_format=m68k
	# we need collect2 until our bug is fixed...
	use_collect2=yes
	;;
m68k-*-sysv3*)			# Motorola m68k's running system V.3
	xm_defines=USG
	extra_parts="crtbegin.o crtend.o"
	extra_headers=math-68881.h
	float_format=m68k
	;;
m68k-*-sysv4*)			# Motorola m68k's running system V.4
	tm_file=m68k/m68kv4.h
	xm_defines=USG
	tmake_file=t-svr4
	extra_parts="crtbegin.o crtend.o"
	extra_headers=math-68881.h
	float_format=m68k
	;;
m68k-*-linux*aout*)		# Motorola m68k's running GNU/Linux
				# with a.out format
	xmake_file=x-linux
	tm_file=m68k/linux-aout.h
	tmake_file="t-linux-aout m68k/t-linux-aout"
	extra_headers=math-68881.h
	float_format=m68k
	gnu_ld=yes
	;;
m68k-*-linux*libc1)		# Motorola m68k's running GNU/Linux
				# with ELF format using the
				# GNU/Linux C library 5
	xmake_file=x-linux
	tm_file=m68k/linux.h
	tmake_file="t-linux t-linux-gnulibc1 m68k/t-linux"
	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
	extra_headers=math-68881.h
	float_format=m68k
	gnu_ld=yes
	;;
m68k-*-linux*)		# Motorola m68k's running GNU/Linux
				# with ELF format using glibc 2
				# aka the GNU/Linux C library 6.
	xmake_file=x-linux
	tm_file=m68k/linux.h
	tmake_file="t-linux m68k/t-linux"
	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
	extra_headers=math-68881.h
	float_format=m68k
	gnu_ld=yes
	if test x$enable_threads = xyes; then
		thread_file='posix'
	fi
	;;
m68k-*-psos*)
	tmake_file=m68k/t-m68kbare
	tm_file=m68k/m68k-psos.h
	extra_headers=math-68881.h
	float_format=m68k
	;;
m68k-*-rtemscoff*)
	tmake_file="m68k/t-m68kbare t-rtems"
	tm_file=m68k/rtems.h
	extra_headers=math-68881.h
	float_format=m68k
	if test x$enable_threads = xyes; then
	  thread_file='rtems'
	fi
	;;
m68k-*-rtemself*|m68k-*-rtems*)
	tmake_file="m68k/t-m68kbare t-rtems m68k/t-crtstuff"
	tm_file=m68k/rtemself.h
	extra_headers=math-68881.h
	float_format=m68k
	if test x$enable_threads = xyes; then
	  thread_file='rtems'
	fi
	;;
m88k-dg-dgux*)
	xm_defines=USG
	case $machine in
	  m88k-dg-dguxbcs*)
	    tm_file=m88k/dguxbcs.h
	    tmake_file=m88k/t-dguxbcs
	    ;;
	  *)
	    tm_file=m88k/dgux.h
	    tmake_file=m88k/t-dgux
	    ;;
	esac
	extra_parts="crtbegin.o bcscrtbegin.o crtend.o m88kdgux.ld"
	xmake_file=m88k/x-dgux
	if test x$gas = xyes
	then
		tmake_file=m88k/t-dgux-gas
	fi
	;;
m88k-dolphin-sysv3*)
	xm_defines=USG
	tm_file=m88k/dolph.h
	extra_parts="crtbegin.o crtend.o"
	xmake_file=m88k/x-dolph
	if test x$gas = xyes
	then
		tmake_file=m88k/t-m88k-gas
	fi
	;;
m88k-tektronix-sysv3)
	xm_defines=USG
	tm_file=m88k/tekXD88.h
	extra_parts="crtbegin.o crtend.o"
	xmake_file=m88k/x-tekXD88
	if test x$gas = xyes
	then
		tmake_file=m88k/t-m88k-gas
	fi
	;;
m88k-*-aout*)
	xm_defines=USG
	tm_file=m88k/m88k-aout.h
	;;
m88k-*-coff*)
	xm_defines=USG
	tm_file=m88k/m88k-coff.h
	tmake_file=m88k/t-bug
	;;
m88k-*-luna*)
	tm_file=m88k/luna.h
	extra_parts="crtbegin.o crtend.o"
	if test x$gas = xyes
	then
		tmake_file=m88k/t-luna-gas
	else
		tmake_file=m88k/t-luna
	fi
	;;
m88k-*-openbsd*)
	tmake_file="${tmake_file} m88k/t-luna-gas"
	tm_file="m88k/aout-dbx.h aoutos.h m88k/m88k.h openbsd.h ${tm_file}"
	;;
m88k-*-sysv3*)
	xm_defines=USG
	tm_file=m88k/sysv3.h
	extra_parts="crtbegin.o crtend.o"
	if test x$gas = xyes
	then
		tmake_file=m88k/t-m88k-gas
	fi
	;;
m88k-*-sysv4*)
	xm_defines=USG
	tm_file=m88k/sysv4.h
	extra_parts="crtbegin.o crtend.o"
	xmake_file=m88k/x-sysv4
	tmake_file=m88k/t-sysv4
	;;
mcore-*-elf)
	tm_file=mcore/mcore-elf.h
	tmake_file=mcore/t-mcore
	;;
mcore-*-pe*)
	tm_file=mcore/mcore-pe.h
	tmake_file=mcore/t-mcore-pe
	;;
mips-sgi-irix6*)		# SGI System V.4., IRIX 6
	if test "x$gnu_ld" = xyes
	then
		tm_file="mips/iris6.h mips/iris6gld.h"
	else
		tm_file=mips/iris6.h
	fi
	tmake_file=mips/t-iris6
	xm_defines=USG
	xmake_file=mips/x-iris6
#	if test x$enable_threads = xyes; then
#		thread_file='irix'
#	fi
	;;
mips-wrs-vxworks)
	tm_file="mips/elf.h mips/vxworks.h"
	tmake_file=mips/t-ecoff
	gas=yes
	gnu_ld=yes
	extra_parts="crtbegin.o crtend.o"
	thread_file='vxworks'
	;;
mips-sgi-irix5cross64)		# Irix5 host, Irix 6 target, cross64
	tm_file="mips/iris6.h mips/cross64.h"
	xm_defines=USG
	xm_file=mips/xm-iris5.h
	xmake_file=mips/x-iris
	tmake_file=mips/t-cross64
	# See comment in mips/iris[56].h files.
	use_collect2=yes
#	if test x$enable_threads = xyes; then
#		thread_file='irix'
#	fi
	;;
mips-sni-sysv4)
	if test x$gas = xyes
	then
		if test x$stabs = xyes
		then
			tm_file=mips/iris5gdb.h
		else
			tm_file="mips/sni-svr4.h mips/sni-gas.h"
		fi
	else
		tm_file=mips/sni-svr4.h
	fi
	xm_defines=USG
        xmake_file=mips/x-sni-svr4
        tmake_file=mips/t-mips-gas
        if test x$gnu_ld != xyes
        then
                use_collect2=yes
        fi
        ;;
mips-sgi-irix5*)		# SGI System V.4., IRIX 5
	if test x$gas = xyes
	then
		tm_file="mips/iris5.h mips/iris5gas.h"
		if test x$stabs = xyes
		then
			tm_file="${tm_file} dbx.h"
		fi
	else
		tm_file=mips/iris5.h
	fi
	xm_defines=USG
	xm_file=mips/xm-iris5.h
	xmake_file=mips/x-iris
	# mips-tfile doesn't work yet
	tmake_file=mips/t-mips-gas
	# See comment in mips/iris5.h file.
	use_collect2=yes
#	if test x$enable_threads = xyes; then
#		thread_file='irix'
#	fi
	;;
mips-sgi-irix4loser*)		# Mostly like a MIPS.
	tm_file="mips/iris4loser.h mips/iris3.h ${tm_file} mips/iris4.h"
	if test x$stabs = xyes; then
		tm_file="${tm_file} dbx.h"
	fi
	xm_defines=USG
	xmake_file=mips/x-iris
	if test x$gas = xyes
	then
		tmake_file=mips/t-mips-gas
	else
		extra_passes="mips-tfile mips-tdump"
	fi
	if test x$gnu_ld != xyes
	then
		use_collect2=yes
	fi
#	if test x$enable_threads = xyes; then
#		thread_file='irix'
#	fi
	;;
mips-sgi-irix4*)		# Mostly like a MIPS.
	tm_file="mips/iris3.h ${tm_file} mips/iris4.h"
	if test x$stabs = xyes; then
		tm_file="${tm_file} dbx.h"
	fi
	xm_defines=USG
	xmake_file=mips/x-iris
	if test x$gas = xyes
	then
		tmake_file=mips/t-mips-gas
	else
		extra_passes="mips-tfile mips-tdump"
	fi
	if test x$gnu_ld != xyes
	then
		use_collect2=yes
	fi
#	if test x$enable_threads = xyes; then
#		thread_file='irix'
#	fi
	;;
mips-sgi-*)			# Mostly like a MIPS.
	tm_file="mips/iris3.h ${tm_file}"
	if test x$stabs = xyes; then
		tm_file="${tm_file} dbx.h"
	fi
	xm_defines=USG
	xmake_file=mips/x-iris3
	if test x$gas = xyes
	then
		tmake_file=mips/t-mips-gas
	else
		extra_passes="mips-tfile mips-tdump"
	fi
	if test x$gnu_ld != xyes
	then
		use_collect2=yes
	fi
	;;
mips-dec-osfrose*)		# Decstation running OSF/1 reference port with OSF/rose.
	tm_file="mips/osfrose.h ${tm_file}"
	xmake_file=mips/x-osfrose
	tmake_file=mips/t-osfrose
	extra_objs=halfpic.o
	use_collect2=yes
	;;
mips-dec-osf*)			# Decstation running OSF/1 as shipped by DIGITAL
	tm_file=mips/dec-osf1.h
	if test x$stabs = xyes; then
		tm_file="${tm_file} dbx.h"
	fi
	xmake_file=mips/x-dec-osf1
	if test x$gas = xyes
	then
		tmake_file=mips/t-mips-gas
	else
		tmake_file=mips/t-ultrix
		extra_passes="mips-tfile mips-tdump"
	fi
	if test x$gnu_ld != xyes
	then
		use_collect2=yes
	fi
	;;
mips-dec-bsd*)                  # Decstation running 4.4 BSD
      tm_file=mips/dec-bsd.h
      if test x$gas = xyes
      then
	   	tmake_file=mips/t-mips-gas
      else
		tmake_file=mips/t-ultrix
		extra_passes="mips-tfile mips-tdump"
      fi
      if test x$gnu_ld != xyes
      then
		use_collect2=yes
      fi
      ;;
mipsel-*-netbsd* | mips-dec-netbsd*)    # Decstation running NetBSD
	tm_file=mips/netbsd.h
	# On NetBSD, the headers are already okay, except for math.h.
	tmake_file=t-netbsd
	;;
mips*-*-linux*)				# Linux MIPS, either endian.
	xmake_file=x-linux
	case $machine in
	       mips*el-*)  tm_file="mips/elfl.h mips/linux.h" ;;
	       *)	  tm_file="mips/elf.h mips/linux.h" ;;
	esac
	tmake_file=t-linux
	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
	gnu_ld=yes
	gas=yes
	if test x$enable_threads = xyes; then
		thread_file='posix'
	fi
	;;
mips*el-*-openbsd*)	# mips little endian
	target_cpu_default="MASK_GAS|MASK_ABICALLS"
	;;
mips*-*-openbsd*)		# mips big endian
	target_cpu_default="MASK_GAS|MASK_ABICALLS"
	tm_file="mips/openbsd-be.h ${tm_file}"
	;;
mips-sony-bsd* | mips-sony-newsos*)	# Sony NEWS 3600 or risc/news.
	tm_file="mips/news4.h ${tm_file}"
	if test x$stabs = xyes; then
		tm_file="${tm_file} dbx.h"
	fi
	if test x$gas = xyes
	then
		tmake_file=mips/t-mips-gas
	else
		extra_passes="mips-tfile mips-tdump"
	fi
	if test x$gnu_ld != xyes
	then
		use_collect2=yes
	fi
	xmake_file=mips/x-sony
	;;
mips-sony-sysv*)		# Sony NEWS 3800 with NEWSOS5.0.
				# That is based on svr4.
	# t-svr4 is not right because this system doesn't use ELF.
	tm_file="mips/news5.h ${tm_file}"
	if test x$stabs = xyes; then
		tm_file="${tm_file} dbx.h"
	fi
	xm_defines=USG
	if test x$gas = xyes
	then
		tmake_file=mips/t-mips-gas
	else
		extra_passes="mips-tfile mips-tdump"
	fi
	if test x$gnu_ld != xyes
	then
		use_collect2=yes
	fi
	;;
mips-tandem-sysv4*)		# Tandem S2 running NonStop UX
	tm_file="mips/svr4-5.h mips/svr4-t.h"
	if test x$stabs = xyes; then
		tm_file="${tm_file} dbx.h"
	fi
	xm_defines=USG
	xmake_file=mips/x-sysv
	if test x$gas = xyes
	then
		tmake_file=mips/t-mips-gas
		extra_parts="crtbegin.o crtend.o"
	else
		tmake_file=mips/t-mips
		extra_passes="mips-tfile mips-tdump"
	fi
	if test x$gnu_ld != xyes
	then
		use_collect2=yes
	fi
	;;
mips-*-ultrix* | mips-dec-mach3)	# Decstation.
	tm_file="mips/ultrix.h ${tm_file}"
	if test x$stabs = xyes; then
		tm_file="${tm_file} dbx.h"
	fi
	xmake_file=mips/x-ultrix
	if test x$gas = xyes
	then
		tmake_file=mips/t-mips-gas
	else
		tmake_file=mips/t-ultrix
		extra_passes="mips-tfile mips-tdump"
	fi
	if test x$gnu_ld != xyes
	then
		use_collect2=yes
	fi
        ;;
mips-*-riscos[56789]bsd*)
	tm_file=mips/bsd-5.h	# MIPS BSD 4.3, RISC-OS 5.0
	if test x$stabs = xyes; then
		tm_file="${tm_file} dbx.h"
	fi
	if test x$gas = xyes
	then
		tmake_file=mips/t-bsd-gas
	else
		tmake_file=mips/t-bsd
		extra_passes="mips-tfile mips-tdump"
	fi
	if test x$gnu_ld != xyes
	then
		use_collect2=yes
	fi
        ;;
mips-*-bsd* | mips-*-riscosbsd* | mips-*-riscos[1234]bsd*)
	tm_file="mips/bsd-4.h ${tm_file}" # MIPS BSD 4.3, RISC-OS 4.0
	if test x$stabs = xyes; then
		tm_file="${tm_file} dbx.h"
	fi
	if test x$gas = xyes
	then
		tmake_file=mips/t-bsd-gas
	else
		tmake_file=mips/t-bsd
		extra_passes="mips-tfile mips-tdump"
	fi
	if test x$gnu_ld != xyes
	then
		use_collect2=yes
	fi
        ;;
mips-*-riscos[56789]sysv4*)
	tm_file=mips/svr4-5.h	# MIPS System V.4., RISC-OS 5.0
	if test x$stabs = xyes; then
		tm_file="${tm_file} dbx.h"
	fi
	xmake_file=mips/x-sysv
	if test x$gas = xyes
	then
		tmake_file=mips/t-svr4-gas
	else
		tmake_file=mips/t-svr4
		extra_passes="mips-tfile mips-tdump"
	fi
	if test x$gnu_ld != xyes
	then
		use_collect2=yes
	fi
	;;
mips-*-sysv4* | mips-*-riscos[1234]sysv4* | mips-*-riscossysv4*)
	tm_file="mips/svr4-4.h ${tm_file}"
	if test x$stabs = xyes; then
		tm_file="${tm_file} dbx.h"
	fi
	xm_defines=USG
	xmake_file=mips/x-sysv
	if test x$gas = xyes
	then
		tmake_file=mips/t-svr4-gas
	else
		tmake_file=mips/t-svr4
		extra_passes="mips-tfile mips-tdump"
	fi
	if test x$gnu_ld != xyes
	then
		use_collect2=yes
	fi
	;;
mips-*-riscos[56789]sysv*)
	tm_file=mips/svr3-5.h	# MIPS System V.3, RISC-OS 5.0
	if test x$stabs = xyes; then
		tm_file="${tm_file} dbx.h"
	fi
	xm_defines=USG
	xmake_file=mips/x-sysv
	if test x$gas = xyes
	then
		tmake_file=mips/t-svr3-gas
	else
		tmake_file=mips/t-svr3
		extra_passes="mips-tfile mips-tdump"
	fi
	if test x$gnu_ld != xyes
	then
		use_collect2=yes
	fi
	;;
mips-*-sysv* | mips-*-riscos*sysv*)
	tm_file="mips/svr3-4.h ${tm_file}"
	if test x$stabs = xyes; then
		tm_file="${tm_file} dbx.h"
	fi
	xm_defines=USG
	xmake_file=mips/x-sysv
	if test x$gas = xyes
	then
		tmake_file=mips/t-svr3-gas
	else
		tmake_file=mips/t-svr3
		extra_passes="mips-tfile mips-tdump"
	fi
	if test x$gnu_ld != xyes
	then
		use_collect2=yes
	fi
	;;
mips-*-riscos[56789]*)		# Default MIPS RISC-OS 5.0.
	tm_file=mips/mips-5.h
	if test x$stabs = xyes; then
		tm_file="${tm_file} dbx.h"
	fi
	if test x$gas = xyes
	then
		tmake_file=mips/t-mips-gas
	else
		extra_passes="mips-tfile mips-tdump"
	fi
	if test x$gnu_ld != xyes
	then
		use_collect2=yes
	fi
	;;
mips-*-gnu*)
	;;
mipsel-*-ecoff*)
	tm_file=mips/ecoffl.h
	if test x$stabs = xyes; then
		tm_file="${tm_file} dbx.h"
	fi
	tmake_file=mips/t-ecoff
	;;
mips-*-ecoff*)
	tm_file="gofast.h mips/ecoff.h"
	if test x$stabs = xyes; then
		tm_file="${tm_file} dbx.h"
	fi
	tmake_file=mips/t-ecoff
	;;
mipsel-*-elf*)
	tm_file="mips/elfl.h"
	tmake_file=mips/t-elf
	;;
mips-*-elf*)
	tm_file="mips/elf.h"
	tmake_file=mips/t-elf
	;;
mips64el-*-elf*)
	tm_file="mips/elfl64.h"
	tmake_file=mips/t-elf
	;;
mips64orionel-*-elf*)
	tm_file="mips/elforion.h mips/elfl64.h"
	tmake_file=mips/t-elf
	;;
mips64-*-elf*)
	tm_file="mips/elf64.h"
	tmake_file=mips/t-elf
	;;
mips64orion-*-elf*)
	tm_file="mips/elforion.h mips/elf64.h"
	tmake_file=mips/t-elf
	;;
mips64orion-*-rtems*)
	tm_file="mips/elforion.h mips/elf64.h mips/rtems64.h"
	tmake_file="mips/t-elf t-rtems"
	if test x$enable_threads = xyes; then
	  thread_file='rtems'
	fi
	;;
mips*-*-rtems*)
	tm_file="mips/elf.h mips/rtems.h"
	tmake_file="mips/t-elf t-rtems"
	if test x$enable_threads = xyes; then
	  thread_file='rtems'
	fi
	;;
mipstx39el-*-elf*)
	tm_file="mips/r3900.h mips/elfl.h mips/abi64.h"
	tmake_file=mips/t-r3900
	;;
mipstx39-*-elf*)
	tm_file="mips/r3900.h mips/elf.h mips/abi64.h"
	tmake_file=mips/t-r3900
	;;
mips-*-*)				# Default MIPS RISC-OS 4.0.
	if test x$stabs = xyes; then
		tm_file="${tm_file} dbx.h"
	fi
	if test x$gas = xyes
	then
		tmake_file=mips/t-mips-gas
	else
		extra_passes="mips-tfile mips-tdump"
	fi
	if test x$gnu_ld != xyes
	then
		use_collect2=yes
	fi
	;;
mn10200-*-*)
	float_format=i32
	cpu_type=mn10200
	tm_file="mn10200/mn10200.h"
	if test x$stabs = xyes
	then
		tm_file="${tm_file} dbx.h"
	fi
	use_collect2=no
	;;
mn10300-*-*)
	cpu_type=mn10300
	tm_file="mn10300/mn10300.h"
	if test x$stabs = xyes
	then
		tm_file="${tm_file} dbx.h"
	fi
	use_collect2=no
	;;
ns32k-encore-bsd*)
	tm_file=ns32k/encore.h
	use_collect2=yes
	;;
ns32k-sequent-bsd*)
	tm_file=ns32k/sequent.h
	use_collect2=yes
	;;
ns32k-tek6100-bsd*)
	tm_file=ns32k/tek6100.h
	use_collect2=yes
	;;
ns32k-tek6200-bsd*)
	tm_file=ns32k/tek6200.h
	use_collect2=yes
	;;
ns32k-merlin-*)
	tm_file=ns32k/merlin.h
	use_collect2=yes
	;;
ns32k-pc532-mach*)
	tm_file=ns32k/pc532-mach.h
	use_collect2=yes
	;;
ns32k-pc532-minix*)
	tm_file=ns32k/pc532-min.h
	xm_defines='USG HZ=60'
	use_collect2=yes
	;;
ns32k-*-netbsd*)
	tm_file=ns32k/netbsd.h
	# On NetBSD, the headers are already okay, except for math.h.
	tmake_file=t-netbsd
	use_collect2=yes
	;;
pdp11-*-bsd)
	tm_file="${tm_file} pdp11/2bsd.h"
        ;;
pdp11-*-*)
	;;
avr-*-*)
	;;
ns32k-*-openbsd*)
	# Nothing special
	;;
pj*-linux*)
	tm_file="svr4.h pj/linux.h ${tm_file}"
	;;
pj-*)
	;;
pjl-*)
	tm_file="svr4.h pj/pjl.h ${tm_file}"
	;;

romp-*-aos*)
	use_collect2=yes
	;;
romp-*-mach*)
	xmake_file=romp/x-mach
	use_collect2=yes
	;;
romp-*-openbsd*)
	# Nothing special
	;;
powerpc-*-openbsd*)
	tmake_file="${tmake_file} rs6000/t-rs6000 rs6000/t-openbsd"
	;;
powerpc-*-beos*)
	cpu_type=rs6000
	tm_file="${tm_file} rs6000/aix.h rs6000/beos.h"
	xm_defines=USG
	xm_file=rs6000/xm-beos.h
	tmake_file=rs6000/t-beos
	xmake_file=rs6000/x-beos
	;;
powerpc-*-darwin*)
	xm_file=rs6000/xm-darwin.h
	xmake_file=rs6000/x-darwin
	;;
powerpc-*-sysv*)
	tm_file="${tm_file} svr4.h rs6000/sysv4.h"
	xm_defines="USG POSIX"
	extra_headers=ppc-asm.h
	tmake_file="rs6000/t-ppcos rs6000/t-ppccomm"
	xmake_file=rs6000/x-sysv4
	;;
powerpc-*-chorusos*)
	xm_defines=USG
	tm_file="${tm_file} svr4.h rs6000/sysv4.h rs6000/chorus.h"
	tmake_file="rs6000/t-ppcos rs6000/t-ppccomm"
	extra_headers=ppc-asm.h
	case x${enable_threads} in
	  xyes | xpthreads | xposix)
		thread_file='posix'
		;;
	esac
	;;
powerpc-*-eabiaix*)
	xm_defines=USG
	tm_file="${tm_file} svr4.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabiaix.h"
	tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
	extra_headers=ppc-asm.h
	;;
powerpc-*-eabisim*)
	xm_defines=USG
	tm_file="${tm_file} svr4.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h"
	tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
	extra_headers=ppc-asm.h
	;;
powerpc-*-elf*)
	xm_defines=USG
	tm_file="${tm_file} svr4.h rs6000/sysv4.h"
	tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
	extra_headers=ppc-asm.h
	;;
powerpc-*-eabi*)
	xm_defines=USG
	tm_file="${tm_file} svr4.h rs6000/sysv4.h rs6000/eabi.h"
	tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
	extra_headers=ppc-asm.h
	;;
powerpc-*-rtems*)
	xm_defines=USG
	tm_file="${tm_file} svr4.h rs6000/sysv4.h rs6000/eabi.h rtems.h rs6000/rtems.h"
	tmake_file="rs6000/t-ppcgas t-rtems rs6000/t-ppccomm"
	extra_headers=ppc-asm.h
	if test x$enable_threads = xyes; then
	  thread_file='rtems'
	fi
	;;
powerpc-*-linux*libc1)
	tm_file="${tm_file} svr4.h rs6000/sysv4.h rs6000/linux.h"
	xm_defines='USG POSIX'
	out_file=rs6000/rs6000.c
	tmake_file="rs6000/t-ppcos t-linux t-linux-gnulibc1 rs6000/t-ppccomm"
	xmake_file=x-linux
	extra_headers=ppc-asm.h
	if test x$enable_threads = xyes; then
		thread_file='posix'
	fi
	;;
powerpc-*-linux*)
	tm_file="${tm_file} svr4.h rs6000/sysv4.h rs6000/linux.h"
	xm_defines="USG ${xm_defines}"
	out_file=rs6000/rs6000.c
	tmake_file="rs6000/t-ppcos t-linux rs6000/t-ppccomm"
	xmake_file=x-linux
	extra_headers=ppc-asm.h
	if test x$enable_threads = xyes; then
		thread_file='posix'
	fi
	;;
powerpc-wrs-vxworks*)
        cpu_type=rs6000
	xm_defines="USG POSIX"
        tm_file="${tm_file} svr4.h rs6000/sysv4.h rs6000/vxppc.h"
        tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
	extra_headers=ppc-asm.h
	thread_file='vxworks'
        ;;
powerpcle-wrs-vxworks*)
        cpu_type=rs6000
	xm_defines="USG POSIX"
        tm_file="${tm_file} svr4.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/vxppc.h"
        tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
	extra_headers=ppc-asm.h
	thread_file='vxworks'
        ;;
powerpcle-*-sysv*)
	tm_file="${tm_file} svr4.h rs6000/sysv4.h rs6000/sysv4le.h"
	xm_defines="USG POSIX"
	tmake_file="rs6000/t-ppcos rs6000/t-ppccomm"
	xmake_file=rs6000/x-sysv4
	extra_headers=ppc-asm.h
	;;
powerpcle-*-elf*)
	xm_defines=USG
	tm_file="${tm_file} svr4.h rs6000/sysv4.h rs6000/sysv4le.h"
	tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
	extra_headers=ppc-asm.h
	;;
powerpcle-*-eabisim*)
	xm_defines=USG
	tm_file="${tm_file} svr4.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/eabisim.h"
	tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
	extra_headers=ppc-asm.h
	;;
powerpcle-*-eabi*)
	xm_defines=USG
	tm_file="${tm_file} svr4.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h"
	tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
	extra_headers=ppc-asm.h
	;;
powerpcle-*-solaris2*)
	tm_file="${tm_file} svr4.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/sol2.h"
	xm_defines="USG POSIX"
	tmake_file="rs6000/t-ppcos rs6000/t-ppccomm"
	xmake_file=rs6000/x-sysv4
	extra_headers=ppc-asm.h
	;;
rs6000-ibm-aix3.[01]*)
	xm_defines=USG
	tm_file="${tm_file} rs6000/aix.h rs6000/aix31.h"
	xmake_file=rs6000/x-aix31
	float_format=none
	use_collect2=yes
	;;
rs6000-ibm-aix3.2.[456789]* | powerpc-ibm-aix3.2.[456789]*)
	xm_defines=USG
	tm_file="${tm_file} rs6000/aix.h rs6000/aix3newas.h"
	tmake_file=rs6000/t-newas
	float_format=none
	use_collect2=yes
	;;
rs6000-ibm-aix4.[12]* | powerpc-ibm-aix4.[12]*)
	xm_defines=USG
	tm_file="${tm_file} rs6000/aix.h rs6000/aix41.h"
	tmake_file=rs6000/t-newas
	xmake_file=rs6000/x-aix41
	float_format=none
	use_collect2=yes
	;;
rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
	xm_defines=USG
	tm_file="${tm_file} rs6000/aix.h rs6000/aix43.h"
	tmake_file=rs6000/t-aix43
	xmake_file=rs6000/x-aix41
	float_format=none
	use_collect2=yes
	thread_file='aix'
	;;
rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*)
	xm_defines=USG
	tm_file="${tm_file} rs6000/aix.h rs6000/aix51.h"
	tmake_file=rs6000/t-aix43
	xmake_file=rs6000/x-aix41
	float_format=none
	use_collect2=yes
	thread_file='aix'
	;;
rs6000-ibm-aix*)
	xm_defines=USG
	tm_file="${tm_file} rs6000/aix.h"
	float_format=none
	use_collect2=yes
	;;
rs6000-bull-bosx)
	xm_defines=USG
	tm_file="${tm_file} rs6000/aix.h"
	float_format=none
	use_collect2=yes
	;;
rs6000-*-mach*)
	tm_file=rs6000/mach.h
	xm_defines=USG
	xmake_file=rs6000/x-mach
	use_collect2=yes
	;;
rs6000-*-lynxos*)
	tm_file=rs6000/lynx.h
	tmake_file=rs6000/t-rs6000
	xmake_file=rs6000/x-lynx
	use_collect2=yes
	;;
sh-*-elf*)
	tmake_file="sh/t-sh sh/t-elf"
	tm_file="sh/sh.h sh/elf.h"
	float_format=sh
	;;
sh-*-rtemself*)
	tmake_file="sh/t-sh sh/t-elf t-rtems"
	tm_file="sh/sh.h sh/elf.h sh/rtemself.h"
	float_format=sh
	if test x$enable_threads = xyes; then
	  thread_file='rtems'
	fi
	;;
sh-*-rtems*)
	tmake_file="sh/t-sh t-rtems"
	tm_file="sh/sh.h sh/rtems.h"
	float_format=sh
	if test x$enable_threads = xyes; then
	  thread_file='rtems'
	fi
	;;
sh-*-linux*)
	tm_file="sh/sh.h sh/elf.h sh/linux.h"
	tmake_file="sh/t-sh sh/t-elf sh/t-linux"
	xmake_file=x-linux
	gas=yes gnu_ld=yes
	if test x$enable_threads = xyes; then
		thread_file='posix'
	fi
	float_format=sh
	;;
sh-*-*)
	float_format=sh
	;;
sparc-tti-*)
	tm_file=sparc/pbd.h
	xm_defines=USG
	;;
sparc64-wrs-vxworks*)
        tm_file="sparc/sol2.h sparc/elf.h sparc/vxsparc64.h"
        tmake_file=sparc/t-vxsparc64
        use_collect2=yes
        ;;
sparc-wrs-vxworks* | sparclite-wrs-vxworks*)
	tm_file=sparc/vxsparc.h
	tmake_file=sparc/t-vxsparc
	use_collect2=yes
	thread_file='vxworks'
	;;
sparc-*-aout*)
	tmake_file=sparc/t-sparcbare
	tm_file="sparc/aout.h libgloss.h"
	;;
sparc-*-netbsd*)
	tm_file=sparc/netbsd.h
	tmake_file=t-netbsd
	use_collect2=yes
	;;
sparc-*-openbsd*)
	# we need collect2 until our bug is fixed...
	use_collect2=yes
	;;
sparc-*-bsd*)
	tm_file=sparc/bsd.h
	;;
sparc-*-chorusos*)
	tm_file="sparc/sol2.h sparc/elf.h sparc/chorus.h"
	tmake_file=sparc/t-chorus-elf
	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
	float_format=i64
	case x${enable_threads} in
	  xyes | xpthreads | xposix)
		thread_file='posix'
		;;
	esac
	;;
sparc-*-elf*)
	tm_file="sparc/sol2.h sparc/elf.h"
	tmake_file=sparc/t-elf
	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
	#float_format=i128
	float_format=i64
	;;
sparc-*-linux*aout*)		# Sparc's running GNU/Linux, a.out
	tm_file=sparc/linux-aout.h
	xmake_file=x-linux
	gnu_ld=yes
	;;
sparc-*-linux*libc1*)	# Sparc's running GNU/Linux, libc5
	xmake_file=x-linux
	tm_file=sparc/linux.h
	tmake_file="t-linux t-linux-gnulibc1"
	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
	gnu_ld=yes
	float_format=sparc
	;;
sparc-*-linux*)		# Sparc's running GNU/Linux, libc6
	xmake_file=x-linux
	tm_file=sparc/linux.h
	tmake_file="t-linux"
	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
	gnu_ld=yes
	if test x$enable_threads = xyes; then
		thread_file='posix'
	fi
	float_format=sparc
	;;
sparc-*-lynxos*)
	if test x$gas = xyes
	then
		tm_file=sparc/lynx.h
	else
		tm_file=sparc/lynx-ng.h
	fi
	tmake_file=sparc/t-sunos41
	xmake_file=x-lynx
	;;
sparc-*-rtemsaout*)
	tmake_file="sparc/t-sparcbare t-rtems"
	tm_file=sparc/rtems.h
	if test x$enable_threads = xyes; then
	  thread_file='rtems'
	fi
	;;
sparc-*-rtems*|sparc-*-rtemself*)
	tm_file="sparc/sol2.h sparc/elf.h sparc/rtemself.h"
	tmake_file="sparc/t-elf t-rtems"
	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
	#float_format=i128
	float_format=i64
	if test x$enable_threads = xyes; then
	  thread_file='rtems'
	fi
	;;
sparcv9-*-solaris2*)
	if test x$gnu_ld = xyes
	then
		tm_file=sparc/sol2-64.h
	else
		tm_file=sparc/sol2-sld-64.h
	fi
	xm_defines="USG POSIX"
	tmake_file="sparc/t-sol2 sparc/t-sol2-64"
	if test x$gnu_ld = xyes; then
		tmake_file="$tmake_file sparc/t-slibgcc"
	else
		tmake_file="$tmake_file sparc/t-slibgcc-sld"
	fi
	xmake_file=sparc/x-sysv4
	extra_parts="crt1.o crti.o crtn.o gcrt1.o crtbegin.o crtend.o"
	float_format=none
	if test x${enable_threads} = x ; then
	    enable_threads=$have_pthread_h
	    if test x${enable_threads} = x ; then
		enable_threads=$have_thread_h
	    fi
	fi
	if test x${enable_threads} = xyes ; then
	    if test x${have_pthread_h} = xyes ; then
		thread_file='posix'
	    else
		thread_file='solaris'
	    fi
	fi
	;;
sparc-hal-solaris2*)
        xm_defines="USG POSIX"
        tm_file="sparc/sol2.h sparc/hal.h"
        tmake_file="sparc/t-halos sparc/t-sol2"
	if test x$gnu_ld = xyes; then
		tmake_file="$tmake_file sparc/t-slibgcc"
	else
		tmake_file="$tmake_file sparc/t-slibgcc-sld"
	fi
        xmake_file=sparc/x-sysv4
        extra_parts="crt1.o crti.o crtn.o gmon.o crtbegin.o crtend.o"
        case $machine in
        *-*-solaris2.[0-4])
                float_format=i128
        ;;
        *)
                float_format=none
                ;;
        esac
	thread_file='solaris'
        ;;
sparc-*-solaris2*)
	if test x$gnu_ld = xyes
	then
		tm_file=sparc/sol2.h
	else
		tm_file=sparc/sol2-sld.h
	fi
	xm_defines="USG POSIX"
	tmake_file=sparc/t-sol2
	if test x$gnu_ld = xyes; then
		tmake_file="$tmake_file sparc/t-slibgcc"
	else
		tmake_file="$tmake_file sparc/t-slibgcc-sld"
	fi
	xmake_file=sparc/x-sysv4
	extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o"
# At the moment, 32-to-64 cross compilation doesn't work.
#	case $machine in
#	*-*-solaris2.[0-6] | *-*-solaris2.[0-6].*) ;;
#	*-*-solaris2*)
#		if test x$gnu_ld = xyes
#		then
#			tm_file=sparc/sol2-64.h
#		else
#			tm_file=sparc/sol2-sld-64.h
#		fi
#		tmake_file="$tmake_file sparc/t-sol2-64"
#		;;
#	esac
	case $machine in
	*-*-solaris2.[0-4])
		float_format=i128
		;;
	*)
		float_format=none
		;;
	esac
	if test x${enable_threads} = x; then
	    enable_threads=$have_pthread_h
	    if test x${enable_threads} = x; then
		enable_threads=$have_thread_h
	    fi
	fi
	if test x${enable_threads} = xyes; then
	    if test x${have_pthread_h} = xyes; then
		thread_file='posix'
	    else
		thread_file='solaris'
	    fi
	fi
	;;
sparc-*-sunos4.0*)
	tm_file=sparc/sunos4.h
	tmake_file=sparc/t-sunos40
	use_collect2=yes
	;;
sparc-*-sunos4*)
	tm_file=sparc/sunos4.h
	tmake_file=sparc/t-sunos41
	use_collect2=yes
	if test x$gas = xyes; then
		tm_file="${tm_file} sparc/sun4gas.h"
	fi
	;;
sparc-*-sunos3*)
	tm_file=sparc/sun4o3.h
	use_collect2=yes
	;;
sparc-*-sysv4*)
	tm_file=sparc/sysv4.h
	xm_defines="USG POSIX"
	tmake_file=t-svr4
	xmake_file=sparc/x-sysv4
	extra_parts="crtbegin.o crtend.o"
	;;
sparc-*-vxsim*)
	xm_defines="USG POSIX"
	tm_file=sparc/vxsim.h
	tmake_file=sparc/t-vxsparc
	xmake_file=sparc/x-sysv4
	;;
sparclet-*-aout*)
	tm_file="sparc/splet.h libgloss.h"
	tmake_file=sparc/t-splet
	;;
sparclite-*-coff*)
	tm_file="sparc/litecoff.h libgloss.h"
	tmake_file=sparc/t-sparclite
	;;
sparclite-*-aout*)
	tm_file="sparc/lite.h aoutos.h libgloss.h"
	tmake_file=sparc/t-sparclite
	;;
sparclite-*-elf*)
	tm_file="sparc/sol2.h sparc/elf.h sparc/liteelf.h"
	tmake_file=sparc/t-sparclite
        extra_parts="crtbegin.o crtend.o"
	;;
sparc86x-*-aout*)
	tm_file="sparc/sp86x-aout.h aoutos.h libgloss.h"
	tmake_file=sparc/t-sp86x
	;;
sparc86x-*-elf*)	
	tm_file="sparc/sol2.h sparc./elf.h sparc/sp86x-elf.h"
	tmake_file=sparc/t-sp86x
        extra_parts="crtbegin.o crtend.o"
	;;
sparc64-*-aout*)
	tmake_file=sparc/t-sp64
	tm_file=sparc/sp64-aout.h
	;;
sparc64-*-elf*)
	tmake_file=sparc/t-sp64
	tm_file=sparc/sp64-elf.h
	extra_parts="crtbegin.o crtend.o"
	;;
sparc64-*-linux*)		# 64-bit Sparc's running GNU/Linux
	tmake_file="t-linux sparc/t-linux64"
	tm_file=sparc/linux64.h
	xmake_file=x-linux
	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
	gnu_ld=yes
	if test x$enable_threads = xyes; then
		thread_file='posix'
	fi
	float_format=sparc
	;;
strongarm-*-elf*)
	tm_file=arm/strongarm-elf.h
	tmake_file=arm/t-strongarm-elf
	out_file=arm/arm.c
	md_file=arm/arm.md
	;;
strongarm-*-coff*)
	tm_file=arm/strongarm-coff.h
	tmake_file=arm/t-strongarm-coff
	out_file=arm/arm.c
	md_file=arm/arm.md
	;;
strongarm-*-pe)
	tm_file=arm/strongarm-pe.h
	tmake_file=arm/t-strongarm-pe
	out_file=arm/arm.c
	md_file=arm/arm.md
	extra_objs=pe.o
	;;
thumb*-*-*)
	{ echo "config.gcc: error:
*** The Thumb targets have been deprecated.  The equivalent
*** ARM based toolchain can now generate Thumb instructions
*** when the -mthumb switch is given to the compiler." 1>&2; exit 1; }
	;;
v850-*-rtems*)
	cpu_type=v850
	tm_file="v850/rtems.h"
	tmake_file="v850/t-v850 t-rtems"
	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"
	;;
v850-*-*)
	target_cpu_default="TARGET_CPU_generic"
	cpu_type=v850
	tm_file="v850/v850.h"
	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"
	;;
vax-*-bsd*)			# vaxen running BSD
	use_collect2=yes
	float_format=vax
	;;
vax-*-sysv*)			# vaxen running system V
	tm_file="${tm_file} vax/vaxv.h"
	xm_defines=USG
	float_format=vax
	;;
vax-*-netbsd*)
	tm_file="${tm_file} netbsd.h vax/netbsd.h"
	tmake_file=t-netbsd
	float_format=vax
	use_collect2=yes
	;;
vax-*-openbsd*)
	tmake_file="${tmake_file} vax/t-openbsd"
	tm_file="vax/vax.h vax/openbsd1.h openbsd.h ${tm_file}"
	float_format=vax
	use_collect2=yes
	;;
vax-*-ultrix*)			# vaxen running ultrix
	tm_file="${tm_file} vax/ultrix.h"
	float_format=vax
	;;
vax-*-vms*)			# vaxen running VMS
	xm_file=vax/xm-vms.h
	tm_file=vax/vms.h
	float_format=vax
	;;
vax-*-*)			# vax default entry
	float_format=vax
	;;
we32k-att-sysv*)
	xm_defines=USG
	use_collect2=yes
	;;
xscale-*-elf)
	tm_file=arm/xscale-elf.h
	tmake_file=arm/t-xscale-elf
	out_file=arm/arm.c
	md_file=arm/arm.md
	;;
xscale-*-coff)
	tm_file=arm/xscale-coff.h
	tmake_file=arm/t-xscale-coff
	out_file=arm/arm.c
	md_file=arm/arm.md
	;;
*)
	echo "Configuration $machine not supported" 1>&2
	exit 1
	;;
esac

case $machine in
*-*-sysv4*)
	xmake_try_sysv=x-sysv
	install_headers_dir=install-headers-cpio
	;;
*-*-sysv*)
	install_headers_dir=install-headers-cpio
	;;
esac

# Distinguish i[34567]86
# Also, do not run mips-tfile on MIPS if using gas.
# Process --with-cpu= for PowerPC/rs6000
target_cpu_default2=
case $machine in
i486-*-*)
	target_cpu_default2=1
	;;
i586-*-*)
	case $target_alias in
		k6-*)
			target_cpu_default2=4
			;;
		*)
			target_cpu_default2=2
			;;
	esac
	;;
i686-*-* | i786-*-*)
	target_cpu_default2=3
	;;
alpha*-*-*)
	case $machine in
		alphaev6[78]*)
			target_cpu_default2="MASK_CPU_EV6|MASK_BWX|MASK_MAX|MASK_FIX|MASK_CIX"
			;;
		alphaev6*)
			target_cpu_default2="MASK_CPU_EV6|MASK_BWX|MASK_MAX|MASK_FIX"
			;;
		alphapca56*)
			target_cpu_default2="MASK_CPU_EV5|MASK_BWX|MASK_MAX"
			;;
		alphaev56*)
			target_cpu_default2="MASK_CPU_EV5|MASK_BWX"
			;;
		alphaev5*)
			target_cpu_default2="MASK_CPU_EV5"
			;;
	esac
			
	if test x$gas = xyes
	then
		if test "$target_cpu_default2" = ""
		then
			target_cpu_default2="MASK_GAS"
		else
			target_cpu_default2="${target_cpu_default2}|MASK_GAS"
		fi
	fi
	;;
arm*-*-*)
	case "x$with_cpu" in
		x)
			# The most generic
			target_cpu_default2="TARGET_CPU_generic"
			;;

		# Distinguish cores, and major variants
		# arm7m doesn't exist, but D & I don't affect code
		xarm[236789] | xarm250 | xarm[67][01]0 \
		| xarm7m | xarm7dm | xarm7dmi | xarm[79]tdmi \
		| xarm7100 | xarm7500 | xarm7500fe | xarm810 \
		| xxscale \
		| xstrongarm | xstrongarm110 | xstrongarm1100)
			target_cpu_default2="TARGET_CPU_$with_cpu"
			;;

		xyes | xno)
			echo "--with-cpu must be passed a value" 1>&2
			exit 1
			;;

		*)
			if test x$pass2done = xyes
			then
				echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2
				exit 1
			fi
			;;
	esac
	;;

mips*-*-ecoff* | mips*-*-elf*)
	if test x$gas = xyes
	then
		if test x$gnu_ld = xyes
		then
			target_cpu_default2="MASK_GAS|MASK_SPLIT_ADDR"
		else
			target_cpu_default2="MASK_GAS"
		fi
	fi
	;;
mips*-*-*)
	if test x$gas = xyes
	then
		target_cpu_default2="MASK_GAS"
	fi
	;;
powerpc*-*-* | rs6000-*-*)
	case "x$with_cpu" in
		x)
			;;

		xcommon | xpower | xpower2 | xpowerpc | xrios \
		  | xrios1 | xrios2 | xrsc | xrsc1 \
		  | x601 | x602 | x603 | x603e | x604 | x604e | x620 \
		  | xec603e | x740 | x750 | x401 \
		  | x403 | x505 | x801 | x821 | x823 | x860)
			target_cpu_default2="\"$with_cpu\""
			;;

		xyes | xno)
			echo "--with-cpu must be passed a value" 1>&2
			exit 1
			;;

		*)
			if test x$pass2done = xyes
			then
				echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2
				exit 1
			fi
			;;
	esac
	;;
sparc*-*-*)
	case ".$with_cpu" in
		.)
			target_cpu_default2=TARGET_CPU_"`echo $machine | sed 's/-.*$//'`"
			;;
		.supersparc | .hypersparc | .ultrasparc | .v7 | .v8 | .v9)
			target_cpu_default2="TARGET_CPU_$with_cpu"
			;;
		*)
			if test x$pass2done = xyes
			then
				echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2
				exit 1
			fi
			;;
	esac
	;;
esac

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

# No need for collect2 if we have the GNU linker.
# Actually, there is now; GNU ld doesn't handle the EH info or
# collecting for shared libraries.
#case x$gnu_ld in
#xyes)
#	use_collect2=
#	;;
#esac

# Save data on machine being used to compile GCC in build_xm_file.
# Save data on host machine in vars host_xm_file and host_xmake_file.
if test x$pass1done = x
then
	if test x$xm_file != x
	then build_xm_file=$xm_file
	fi
	build_xm_defines=$xm_defines
	build_install_headers_dir=$install_headers_dir
	build_exeext=$exeext
	pass1done=yes
else
	if test x$pass2done = x
	then
		if test x$xm_file != x
		then host_xm_file=$xm_file
		fi
		host_xm_defines=$xm_defines
		if test x"$xmake_file" = x
		then xmake_file=$cpu_type/x-$cpu_type
		fi
		host_xmake_file="$xmake_file"
		host_truncate_target=$truncate_target
		host_extra_gcc_objs=$extra_gcc_objs
		host_extra_objs=$extra_host_objs
		host_exeext=$exeext
		pass2done=yes
	fi
fi
