# Mappings from configurations to GDB target definitions.  This is
# invoked from the autoconf generated configure script.

# This file sets the following shell variables:
#  gdb_target_obs	target-specific object files to use
#  gdb_sim		simulator library for target
#  gdb_osabi		default OS ABI to use with target
#  build_gdbserver	set to "yes" if gdbserver supports target

# NOTE: Every file added to a gdb_target_obs variable for any target here
#       must also be added to either ALL_TARGET_OBS or ALL_64_TARGET_OBS
#	in Makefile.in!

case $targ in
 d10v-*-* | \
 hppa*-*-hiux* | \
 i[34567]86-ncr-* | \
 m68*-cisco*-* | \
 m68*-tandem-* | \
 m68*-*-os68k* | \
 mips*-*-pe | \
 rs6000-*-lynxos* | \
 sh*-*-pe | \
 null)
    echo "*** Configuration $targ is obsolete." >&2
    echo "*** Support has been REMOVED." >&2
    exit 1
    ;;
esac

# map target info into gdb names.

case "${targ}" in

alpha*-*-osf*)
	# Target: Little-endian Alpha running OSF/1
	gdb_target_obs="alpha-tdep.o alpha-osf1-tdep.o alpha-mdebug-tdep.o"
	;;
alpha*-*-linux*)
	# Target: Little-endian Alpha running Linux
	gdb_target_obs="alpha-tdep.o alpha-mdebug-tdep.o alpha-linux-tdep.o \
			linux-tdep.o solib.o solib-svr4.o"
	;;
alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
	# Target: FreeBSD/alpha
	gdb_target_obs="alpha-tdep.o alpha-mdebug-tdep.o alphabsd-tdep.o \
			alphafbsd-tdep.o corelow.o solib.o solib-svr4.o"
	;;
alpha*-*-netbsd* | alpha*-*-knetbsd*-gnu)
	# Target: NetBSD/alpha
	gdb_target_obs="alpha-tdep.o alpha-mdebug-tdep.o alphabsd-tdep.o \
			alphanbsd-tdep.o nbsd-tdep.o corelow.o solib.o \
			solib-svr4.o"
	;;
alpha*-*-openbsd*)
	# Target: OpenBSD/alpha
	gdb_target_obs="alpha-tdep.o alpha-mdebug-tdep.o alphabsd-tdep.o \
			alphanbsd-tdep.o alphaobsd-tdep.o nbsd-tdep.o \
			obsd-tdep.o corelow.o solib.o solib-svr4.o"
	;;
alpha*-*-*)
	# Target: Alpha
	gdb_target_obs="alpha-tdep.o"
	;;

am33_2.0*-*-linux*)
	# Target: Matsushita mn10300 (AM33) running Linux
	gdb_target_obs="mn10300-tdep.o mn10300-linux-tdep.o linux-tdep.o \
			corelow.o solib.o solib-svr4.o"
	;;

arm*-wince-pe | arm*-*-mingw32ce*)
	# Target: ARM based machine running Windows CE (win32)
	gdb_target_obs="arm-tdep.o arm-wince-tdep.o corelow.o \
			solib.o solib-target.o"
	build_gdbserver=yes
	;;
arm*-*-linux*)
	# Target: ARM based machine running GNU/Linux
	gdb_target_obs="arm-tdep.o arm-linux-tdep.o glibc-tdep.o \
			solib.o solib-svr4.o symfile-mem.o corelow.o linux-tdep.o"
	build_gdbserver=yes
	;;
arm*-*-netbsd* | arm*-*-knetbsd*-gnu)
	# Target: NetBSD/arm
	gdb_target_obs="arm-tdep.o armnbsd-tdep.o solib.o solib-svr4.o"
	;;
arm*-*-openbsd*)
	# Target: OpenBSD/arm
	gdb_target_obs="arm-tdep.o armbsd-tdep.o armobsd-tdep.o obsd-tdep.o \
			corelow.o solib.o solib-svr4.o"
	;;
arm*-*-symbianelf*)
	# Target: SymbianOS/arm
	gdb_target_obs="arm-tdep.o solib-target.o arm-symbian-tdep.o"
	;;
arm*-*-* | thumb*-*-* | strongarm*-*-* | xscale-*-*)
	# Target: ARM embedded system
	gdb_target_obs="arm-tdep.o"
	gdb_sim=../sim/arm/libsim.a
	;;

avr-*-*)
	# Target: AVR
	gdb_target_obs="avr-tdep.o"
	gdb_sim=../sim/avr/libsim.a
	;;

cris*)
	# Target: CRIS
	gdb_target_obs="cris-tdep.o corelow.o solib.o solib-svr4.o"
	;;

frv-*-*)
	# Target: Fujitsu FRV processor
	gdb_target_obs="frv-tdep.o frv-linux-tdep.o linux-tdep.o \
			solib.o solib-frv.o corelow.o"
	gdb_sim=../sim/frv/libsim.a
	;;

moxie-*-elf)
	gdb_target_obs="moxie-tdep.o"
	gdb_sim=../sim/moxie/libsim.a
	;;

h8300-*-*)
	# Target: H8300 with HMS monitor and H8 simulator
	gdb_target_obs="h8300-tdep.o monitor.o dsrec.o"
	gdb_sim=../sim/h8300/libsim.a
	;;

hppa*-*-hpux*)
	# Target: HP PA-RISC running hpux
	gdb_target_obs="hppa-tdep.o hppa-hpux-tdep.o corelow.o \
			solib.o solib-som.o solib-pa64.o"
	;;
hppa*-*-linux*)
	# Target: HP PA-RISC running Linux
	gdb_target_obs="hppa-tdep.o hppa-linux-tdep.o glibc-tdep.o \
			linux-tdep.o solib.o solib-svr4.o symfile-mem.o"
	;;
hppa*-*-netbsd*)
	# Target: NetBSD/hppa
	gdb_target_obs="hppa-tdep.o hppabsd-tdep.o hppanbsd-tdep.o \
			corelow.o solib.o solib-svr4.o"
	;;
hppa*-*-openbsd*)
	# Target: OpenBSD/hppa
	gdb_target_obs="hppa-tdep.o hppabsd-tdep.o hppaobsd-tdep.o \
			corelow.o solib.o solib-svr4.o"
	;;
hppa*-*-*)
	# Target: HP PA-RISC
	gdb_target_obs="hppa-tdep.o"
	;;

i[34567]86-*-darwin*)
	# Target: Darwin/i386
	gdb_target_obs="i386-tdep.o i387-tdep.o \
			i386-darwin-tdep.o solib.o solib-darwin.o"
	if test "x$enable_64_bit_bfd" = "xyes"; then
	    # Target: GNU/Linux x86-64
	    gdb_target_obs="amd64-tdep.o amd64-darwin-tdep.o ${gdb_target_obs}"
	fi
	;;
i[34567]86-*-dicos*)
	# Target: DICOS/i386
	gdb_target_obs="i386-tdep.o i387-tdep.o \
			dicos-tdep.o i386-dicos-tdep.o \
			corelow.o solib.o solib-target.o"
	;;
i[34567]86-*-freebsd* | i[34567]86-*-kfreebsd*-gnu)
	# Target: FreeBSD/i386
	gdb_target_obs="i386-tdep.o i387-tdep.o i386bsd-tdep.o i386fbsd-tdep.o \
			bsd-uthread.o corelow.o solib.o solib-svr4.o"
	;;
i[34567]86-*-netbsd* | i[34567]86-*-knetbsd*-gnu)
	# Target: NetBSD/i386
	gdb_target_obs="i386-tdep.o i387-tdep.o i386bsd-tdep.o i386nbsd-tdep.o \
			nbsd-tdep.o corelow.o solib.o solib-svr4.o"
	;;
i[34567]86-*-openbsd*)
	# Target: OpenBSD/i386
	gdb_target_obs="i386-tdep.o i387-tdep.o i386bsd-tdep.o i386obsd-tdep.o \
			bsd-uthread.o corelow.o solib.o solib-svr4.o"
	;;
i[34567]86-*-nto*)
	# Target: Intel 386 running qnx6.
	gdb_target_obs="i386-tdep.o i387-tdep.o corelow.o solib.o solib-svr4.o \
			i386-nto-tdep.o nto-tdep.o"
	build_gdbserver=yes
	;;
i[34567]86-*-solaris2.1[0-9]* | x86_64-*-solaris2.1[0-9]*)
	# Target: Solaris x86_64
	gdb_target_obs="i386-tdep.o i387-tdep.o amd64-tdep.o amd64-sol2-tdep.o \
			i386-sol2-tdep.o sol2-tdep.o \
			corelow.o solib.o solib-svr4.o"
	;;
i[34567]86-*-solaris*)
	# Target: Solaris x86
	gdb_target_obs="i386-tdep.o i387-tdep.o i386-sol2-tdep.o sol2-tdep.o \
			corelow.o solib.o solib-svr4.o"
	;;
i[34567]86-*-linux*)
	# Target: Intel 386 running GNU/Linux
	gdb_target_obs="i386-tdep.o i386-linux-tdep.o glibc-tdep.o i387-tdep.o \
			solib.o solib-svr4.o symfile-mem.o corelow.o \
			linux-tdep.o linux-record.o"
	if test "x$enable_64_bit_bfd" = "xyes"; then
	    # Target: GNU/Linux x86-64
	    gdb_target_obs="amd64-tdep.o amd64-linux-tdep.o ${gdb_target_obs}"
	fi
	build_gdbserver=yes
	;;
i[34567]86-*-gnu*)
	# Target: Intel 386 running the GNU Hurd
	gdb_target_obs="i386-tdep.o i387-tdep.o i386gnu-tdep.o \
			solib.o solib-svr4.o"
	;;
i[34567]86-*-cygwin*)
	# Target: Intel 386 running win32
	gdb_target_obs="i386-tdep.o i386-cygwin-tdep.o i387-tdep.o \
			solib-target.o corelow.o windows-tdep.o"
	build_gdbserver=yes
	;;
i[34567]86-*-mingw32*)
	# Target: Intel 386 running win32
	gdb_target_obs="i386-tdep.o i386-cygwin-tdep.o i387-tdep.o \
			solib-target.o corelow.o windows-tdep.o"
	build_gdbserver=yes
	;;
i[34567]86-*-*)
	# Target: i386
	gdb_target_obs="i386-tdep.o i387-tdep.o"
	;;

ia64-*-linux*)
	# Target: Intel IA-64 running GNU/Linux
	gdb_target_obs="ia64-tdep.o ia64-linux-tdep.o linux-tdep.o \
			solib.o solib-svr4.o symfile-mem.o"
	build_gdbserver=yes
	;;
ia64*-*-*)
	# Target: Intel IA-64
	gdb_target_obs="ia64-tdep.o"
	;;

iq2000-*-*)
	gdb_target_obs="iq2000-tdep.o"
	gdb_sim=../sim/iq2000/libsim.a
	;;

lm32-*-*)		
	gdb_target_obs="lm32-tdep.o" 
	gdb_sim=../sim/lm32/libsim.a
	;;

m32c-*-*)
	# Target: Renesas M32C family
	gdb_target_obs="m32c-tdep.o prologue-value.o"
	# There may also be a SID / CGEN simulator for this,
	# but we do have DJ Delorie's mini-sim.
	gdb_sim=../sim/m32c/libsim.a
	;;

m32r*-*-linux*)
	# Target: Renesas M32R running GNU/Linux
	gdb_target_obs="m32r-tdep.o m32r-linux-tdep.o remote-m32r-sdi.o \
			glibc-tdep.o solib.o solib-svr4.o symfile-mem.o \
			linux-tdep.o"
	gdb_sim=../sim/m32r/libsim.a
	build_gdbserver=yes
	;;
m32r*-*-*)
	# Target: Renesas m32r processor
	gdb_target_obs="m32r-tdep.o monitor.o m32r-rom.o dsrec.o \
			remote-m32r-sdi.o"
	gdb_sim=../sim/m32r/libsim.a
	;;

m68hc11*-*-*|m6811*-*-*)
	# Target: Motorola 68HC11 processor
	gdb_target_obs="m68hc11-tdep.o"
	gdb_sim=../sim/m68hc11/libsim.a
	;;

m68*-*-aout* | m68*-*-coff* | m68*-*-elf* | m68*-*-rtems* | m68*-*-uclinux* | \
fido-*-elf*)
	# Target: Motorola m68k embedded (e.g. bug monitors)
	gdb_target_obs="m68k-tdep.o monitor.o dbug-rom.o dsrec.o"
	;;
m68*-*-linux*)
	# Target: Motorola m68k with a.out and ELF
	gdb_target_obs="m68k-tdep.o m68klinux-tdep.o solib.o solib-svr4.o \
			linux-tdep.o glibc-tdep.o symfile-mem.o"
	build_gdbserver=yes
	;;
m68*-*-netbsd* | m68*-*-knetbsd*-gnu)
	# Target: NetBSD/m68k
	gdb_target_obs="m68k-tdep.o m68kbsd-tdep.o \
			corelow.o solib.o solib-svr4.o"
	;;
m68*-*-openbsd*)
	# Target: OpenBSD/m68k
	gdb_target_obs="m68k-tdep.o m68kbsd-tdep.o \
			corelow.o solib.o solib-svr4.o"
	;;

m88*-*-openbsd*)
	# Target: OpenBSD/m88k
	gdb_target_obs="m88k-tdep.o corelow.o"
	;;

mep-*-*)
	# Target: Toshiba Media Processor (MEP)
	gdb_target_obs="mep-tdep.o prologue-value.o"
	# No sim needed. Target uses SID.
	;;

microblaze*-linux-*)
	# Target: Xilinx MicroBlaze running Linux
	gdb_target_obs="microblaze-tdep.o microblaze-linux-tdep.o microblaze-rom.o \
			monitor.o dsrec.o solib.o solib-svr4.o corelow.o \
			symfile-mem.o linux-tdep.o"
	gdb_sim=../sim/microblaze/libsim.a
	;;
microblaze*-xilinx-*)
	# Target: Xilinx MicroBlaze running standalone
	gdb_target_obs="microblaze-tdep.o microblaze-rom.o monitor.o dsrec.o"
	gdb_sim=../sim/microblaze/libsim.a
	;;

mips*-sgi-irix5*)
	# Target: MIPS SGI running Irix 5
	gdb_target_obs="mips-tdep.o mips-irix-tdep.o solib.o solib-irix.o"
	;;
mips*-sgi-irix6*)
	# Target: MIPS SGI running Irix 6.x
	gdb_target_obs="mips-tdep.o mips-irix-tdep.o solib.o solib-irix.o"
	;;
mips*-*-linux*)
	# Target: Linux/MIPS
	gdb_target_obs="mips-tdep.o mips-linux-tdep.o glibc-tdep.o \
			corelow.o solib.o solib-svr4.o symfile-mem.o \
			linux-tdep.o"
	gdb_sim=../sim/mips/libsim.a
	build_gdbserver=yes
	;;
mips*-*-netbsd* | mips*-*-knetbsd*-gnu)
	# Target: MIPS running NetBSD
	gdb_target_obs="mips-tdep.o mipsnbsd-tdep.o \
			corelow.o solib.o solib-svr4.o nbsd-tdep.o"
	gdb_sim=../sim/mips/libsim.a
	;;
mips64*-*-openbsd*)
	# Target: OpenBSD/mips64
	gdb_target_obs="mips-tdep.o mips64obsd-tdep.o \
			corelow.o solib.o solib-svr4.o"
	;;
mips*-*-*)
	# Target: MIPS
	gdb_target_obs="mips-tdep.o"
	gdb_sim=../sim/mips/libsim.a
	;;

mn10300-*-*)
	# Target: Matsushita mn10300
	gdb_target_obs="mn10300-tdep.o"
	gdb_sim=../sim/mn10300/libsim.a
	;;

mt-*-*)
	# Target: Morpho Technologies ms1 processor
	gdb_target_obs="mt-tdep.o"
	;;

powerpc-*-netbsd* | powerpc-*-knetbsd*-gnu)
	# Target: NetBSD/powerpc
	gdb_target_obs="rs6000-tdep.o ppc-sysv-tdep.o ppcnbsd-tdep.o \
			corelow.o solib.o solib-svr4.o"
	gdb_sim=../sim/ppc/libsim.a
	;;
powerpc-*-openbsd*)
	# Target: OpenBSD/powerpc
	gdb_target_obs="rs6000-tdep.o ppc-sysv-tdep.o ppcobsd-tdep.o \
			corelow.o solib.o solib-svr4.o"
	;;
powerpc-*-aix* | rs6000-*-*)
	# Target: PowerPC running AIX
	gdb_target_obs="rs6000-tdep.o rs6000-aix-tdep.o xcoffread.o \
			ppc-sysv-tdep.o solib.o solib-svr4.o"
	;;
powerpc-*-linux* | powerpc64-*-linux*)
	# Target: PowerPC running Linux
	gdb_target_obs="rs6000-tdep.o ppc-linux-tdep.o ppc-sysv-tdep.o \
			solib.o solib-svr4.o solib-spu.o spu-multiarch.o \
			corelow.o symfile-mem.o linux-tdep.o"
	gdb_sim=../sim/ppc/libsim.a
	build_gdbserver=yes
	;;
powerpc*-*-*)
	# Target: PowerPC running eabi
	gdb_target_obs="rs6000-tdep.o monitor.o dsrec.o ppcbug-rom.o \
			dink32-rom.o ppc-sysv-tdep.o solib.o solib-svr4.o"
	if test -f ../sim/ppc/Makefile; then
	  gdb_sim=../sim/ppc/libsim.a
	fi
	;;

s390*-*-*)
	# Target: S390 running Linux
	gdb_target_obs="s390-tdep.o solib.o solib-svr4.o linux-tdep.o"
	build_gdbserver=yes
	;;

rx-*-elf)
	# Target: Renesas RX
	gdb_target_obs="rx-tdep.o"
	gdb_sim=../sim/rx/libsim.a
	;;

score-*-*)
	# Target: S+core embedded system
	gdb_target_obs="score-tdep.o corelow.o"
	if test -f ../sim/score/Makefile; then
	  gdb_sim=../sim/score/libsim.a
	fi
	build_gdbserver=yes
	;;

sh*-*-linux*)
	# Target: GNU/Linux Super-H
	gdb_target_obs="sh-tdep.o sh64-tdep.o sh-linux-tdep.o monitor.o \
			dsrec.o solib.o solib-svr4.o symfile-mem.o \
			glibc-tdep.o corelow.o linux-tdep.o"
	gdb_sim=../sim/sh/libsim.a
	build_gdbserver=yes
	;;
sh*-*-netbsdelf* | sh*-*-knetbsd*-gnu)
	# Target: NetBSD/sh
	gdb_target_obs="sh-tdep.o shnbsd-tdep.o corelow.o solib.o solib-svr4.o"
	gdb_sim=../sim/sh/libsim.a
	;;
sh*-*-openbsd*)
	# Target: OpenBSD/sh
	gdb_target_obs="sh-tdep.o sh64-tdep.o shnbsd-tdep.o \
			corelow.o solib.o solib-svr4.o"
	;;
sh64-*-elf*)
	# Target: Renesas/Super-H 64 bit with simulator
	gdb_target_obs="sh-tdep.o sh64-tdep.o"
	gdb_sim=../sim/sh64/libsim.a
	;;
sh*)
	# Target: Embedded Renesas Super-H with ICE and simulator
	gdb_target_obs="sh-tdep.o sh64-tdep.o monitor.o dsrec.o"
	gdb_sim=../sim/sh/libsim.a
	;;

sparc-*-linux*)
	# Target: GNU/Linux SPARC
	gdb_target_obs="sparc-tdep.o sparc-sol2-tdep.o sol2-tdep.o \
			sparc-linux-tdep.o solib.o solib-svr4.o symfile-mem.o \
			linux-tdep.o"
	if test "x$enable_64_bit_bfd" = "xyes"; then
	    # Target: GNU/Linux UltraSPARC
	    gdb_target_obs="sparc64-tdep.o sparc64-sol2-tdep.o \
			    sparc64-linux-tdep.o ${gdb_target_obs}"
	fi
	;;
sparc64-*-linux*)
	# Target: GNU/Linux UltraSPARC
	gdb_target_obs="sparc64-tdep.o sparc64-sol2-tdep.o sol2-tdep.o \
			sparc64-linux-tdep.o sparc-tdep.o sparc-sol2-tdep.o \
			sparc-linux-tdep.o solib.o solib-svr4.o linux-tdep.o"
	build_gdbserver=yes
	;;
sparc*-*-freebsd* | sparc*-*-kfreebsd*-gnu)
	# Target: FreeBSD/sparc64
	gdb_target_obs="sparc-tdep.o sparc64-tdep.o sparc64fbsd-tdep.o \
			corelow.o solib.o solib-svr4.o"
	;;
sparc-*-netbsd* | sparc-*-knetbsd*-gnu)
	# Target: NetBSD/sparc
	gdb_target_obs="sparc-tdep.o sparcnbsd-tdep.o nbsd-tdep.o \
			corelow.o solib.o solib-svr4.o"
	;;
sparc64-*-netbsd* | sparc64-*-knetbsd*-gnu)
	# Target: NetBSD/sparc64
	gdb_target_obs="sparc64-tdep.o sparc64nbsd-tdep.o sparc-tdep.o \
			sparcnbsd-tdep.o nbsd-tdep.o \
			corelow.o solib.o solib-svr4.o"
	;;
sparc-*-openbsd*)
	# Target: OpenBSD/sparc
	gdb_target_obs="sparc-tdep.o sparcnbsd-tdep.o sparcobsd-tdep.o \
			nbsd-tdep.o obsd-tdep.o bsd-uthread.o \
			corelow.o solib.o solib-svr4.o"
	;;
sparc64-*-openbsd*)
	# Target: OpenBSD/sparc64
	gdb_target_obs="sparc64-tdep.o sparc64nbsd-tdep.o sparc64obsd-tdep.o \
			sparc-tdep.o sparcnbsd-tdep.o sparcobsd-tdep.o \
			nbsd-tdep.o obsd-tdep.o bsd-uthread.o \
			corelow.o solib.o solib-svr4.o"
	;;
sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*)
	# Target: Solaris SPARC
	gdb_target_obs="sparc-tdep.o sparc-sol2-tdep.o sol2-tdep.o \
			solib.o solib-svr4.o"
	;;
sparc-*-solaris2* | sparcv9-*-solaris2* | sparc64-*-solaris2*)
	# Target: Solaris UltraSPARC
	gdb_target_obs="sparc64-tdep.o sparc64-sol2-tdep.o sparc-tdep.o \
			sparc-sol2-tdep.o sol2-tdep.o solib.o solib-svr4.o"
	;;
sparc-*-*)
	# Target: SPARC
	gdb_target_obs="sparc-tdep.o ravenscar-thread.o \
			ravenscar-sparc-thread.o"
	gdb_sim=../sim/erc32/libsim.a
	;;
sparc64-*-*)
	# Target: UltraSPARC
	gdb_target_obs="sparc-tdep.o sparc64-tdep.o"
	;;

spu*-*-*)
	# Target: Cell BE SPU
	gdb_target_obs="spu-tdep.o"
	build_gdbserver=yes
	;;

xstormy16-*-*)
	# Target: Sanyo Xstormy16a processor
	gdb_target_obs="xstormy16-tdep.o"
	# No simulator libraries are needed -- target uses SID.
	;;

v850*-*-elf)
	# Target: NEC V850 processor
	gdb_target_obs="v850-tdep.o"
	gdb_sim=../sim/v850/libsim.a
	;;

vax-*-netbsd* | vax-*-knetbsd*-gnu)
	# Target: NetBSD/vax
	gdb_target_obs="vax-tdep.o vaxnbsd-tdep.o \
			corelow.o solib.o solib-svr4.o"
	;;
vax-*-openbsd*)
	# Target: OpenBSD/vax
	gdb_target_obs="vax-tdep.o vaxobsd-tdep.o corelow.o"
	;;
vax-*-*)
	# Target: VAX running 4.2BSD or Ultrix
	gdb_target_obs="vax-tdep.o"
	;;

x86_64-*-darwin*)
	# Target: Darwin/x86-64
	gdb_target_obs="amd64-tdep.o i386-tdep.o i387-tdep.o \
			i386-darwin-tdep.o amd64-darwin-tdep.o \
                        solib.o solib-darwin.o"
	;;

x86_64-*-dicos*)
	# Target: DICOS/x86-64
	gdb_target_obs="amd64-tdep.o i386-tdep.o i387-tdep.o \
			dicos-tdep.o i386-dicos-tdep.o amd64-dicos-tdep.o \
			corelow.o solib.o solib-target.o"
	;;
x86_64-*-linux*)
	# Target: GNU/Linux x86-64
	gdb_target_obs="amd64-tdep.o amd64-linux-tdep.o i386-tdep.o \
			i387-tdep.o i386-linux-tdep.o glibc-tdep.o \
			solib.o solib-svr4.o corelow.o symfile-mem.o linux-tdep.o \
			linux-record.o"
	build_gdbserver=yes
	;;
x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu)
	# Target: FreeBSD/amd64
	gdb_target_obs="amd64-tdep.o amd64fbsd-tdep.o i386-tdep.o \
			i387-tdep.o i386bsd-tdep.o i386fbsd-tdep.o \
			bsd-uthread.o corelow.o solib.o solib-svr4.o"
	;;
x86_64-*-mingw*)
        # Target: MingW/amd64
	gdb_target_obs="amd64-tdep.o amd64-windows-tdep.o \
                        i386-tdep.o i386-cygwin-tdep.o i387-tdep.o \
                        solib-target.o windows-tdep.o"
	build_gdbserver=yes
        ;;
x86_64-*-netbsd* | x86_64-*-knetbsd*-gnu)
	# Target: NetBSD/amd64
	gdb_target_obs="amd64-tdep.o amd64nbsd-tdep.o i386-tdep.o i387-tdep.o \
			nbsd-tdep.o corelow.o solib.o solib-svr4.o"
	;;
x86_64-*-openbsd*)
	# Target: OpenBSD/amd64
	gdb_target_obs="amd64-tdep.o amd64obsd-tdep.o i386-tdep.o \
			i387-tdep.o i386bsd-tdep.o i386obsd-tdep.o \
			bsd-uthread.o corelow.o solib.o solib-svr4.o"
	;;
xtensa*-*-linux*)	gdb_target=linux
	# Target: GNU/Linux Xtensa
	gdb_target_obs="xtensa-tdep.o xtensa-config.o xtensa-linux-tdep.o \
			solib.o solib-svr4.o corelow.o symfile-mem.o \
			linux-tdep.o"
	build_gdbserver=yes
	;;
xtensa*)
	# Target: Tensilica Xtensa processors
	gdb_target_obs="xtensa-tdep.o xtensa-config.o solib.o solib-svr4.o"
	;;

esac

# map target onto default OS ABI

case "${targ}" in
*-*-freebsd*)	gdb_osabi=GDB_OSABI_FREEBSD_ELF ;;
*-*-linux*)	gdb_osabi=GDB_OSABI_LINUX ;;
*-*-nto*)	gdb_osabi=GDB_OSABI_QNXNTO ;;
m68*-*-openbsd* | m88*-*-openbsd* | vax-*-openbsd*) ;;
*-*-openbsd*)	gdb_osabi=GDB_OSABI_OPENBSD_ELF ;;
*-*-solaris*)	gdb_osabi=GDB_OSABI_SOLARIS ;;
*-*-*-gnu*)	;; # prevent non-GNU kernels to match the Hurd rule below
*-*-gnu*)	gdb_osabi=GDB_OSABI_HURD ;;
*-*-mingw32ce*)	gdb_osabi=GDB_OSABI_WINCE ;;
*-*-mingw* | *-*-cygwin*)
		gdb_osabi=GDB_OSABI_CYGWIN ;;
*-*-dicos*)	gdb_osabi=GDB_OSABI_DICOS ;;
*-*-symbianelf*)
		gdb_osabi=GDB_OSABI_SYMBIAN ;;
esac
