# 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
#  gdb_have_gcore	set to "true"/"false" if this target can run gcore

# 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
 *-*-irix* | \
 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
aarch64*-*-elf)
	# Target: AArch64 embedded system
	gdb_target_obs="aarch64-tdep.o aarch64-newlib-tdep.o"
	;;

aarch64*-*-linux*)
	# Target: AArch64 linux
	gdb_target_obs="aarch64-tdep.o aarch64-linux-tdep.o \
			glibc-tdep.o linux-tdep.o solib-svr4.o \
			symfile-mem.o"
	build_gdbserver=yes
	;;

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-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 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 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 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 \
			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 windows-tdep.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-svr4.o symfile-mem.o linux-tdep.o linux-record.o"
	build_gdbserver=yes
	;;
arm*-*-netbsd* | arm*-*-knetbsd*-gnu)
	# Target: NetBSD/arm
	gdb_target_obs="arm-tdep.o armnbsd-tdep.o solib-svr4.o"
	;;
arm*-*-openbsd*)
	# Target: OpenBSD/arm
	gdb_target_obs="arm-tdep.o armbsd-tdep.o armobsd-tdep.o obsd-tdep.o \
			solib-svr4.o"
	;;
arm*-*-symbianelf*)
	# Target: SymbianOS/arm
	gdb_target_obs="arm-tdep.o arm-symbian-tdep.o"
	;;
arm*-*-*)
	# 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
	;;

bfin-*-*linux*)
	# Target: Blackfin Linux
	gdb_target_obs="bfin-tdep.o bfin-linux-tdep.o linux-tdep.o"
	gdb_sim=../sim/bfin/libsim.a
	build_gdbserver=yes
	;;
bfin-*-*)
	# Target: Blackfin processor
	gdb_target_obs="bfin-tdep.o"
	gdb_sim=../sim/bfin/libsim.a
	;;

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

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

moxie-*-elf | moxie-*-rtems*)
	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 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-svr4.o symfile-mem.o"
	;;
hppa*-*-netbsd*)
	# Target: NetBSD/hppa
	gdb_target_obs="hppa-tdep.o hppabsd-tdep.o hppanbsd-tdep.o solib-svr4.o"
	;;
hppa*-*-openbsd*)
	# Target: OpenBSD/hppa
	gdb_target_obs="hppa-tdep.o hppabsd-tdep.o hppaobsd-tdep.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-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"
	;;
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 fbsd-tdep.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 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 \
			obsd-tdep.o bsd-uthread.o solib-svr4.o"
	;;
i[34567]86-*-nto*)
	# Target: Intel 386 running qnx6.
	gdb_target_obs="i386-tdep.o i387-tdep.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 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 \
			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-svr4.o symfile-mem.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-svr4.o"
	;;
i[34567]86-*-cygwin*)
	# Target: Intel 386 running win32
	gdb_target_obs="i386-tdep.o i386-cygwin-tdep.o i387-tdep.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 \
			windows-tdep.o"
	build_gdbserver=yes
	;;
i[34567]86-*-*)
	# Target: i386
	gdb_target_obs="i386-tdep.o i387-tdep.o"
	;;

ia64-*-hpux*)
	# Target: Intel IA-64 running HP-UX
	gdb_target_obs="ia64-tdep.o ia64-hpux-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-svr4.o symfile-mem.o"
	build_gdbserver=yes
	;;
ia64-*-*vms*)
	# Target: Intel IA-64 running OpenVMS
	gdb_target_obs="ia64-tdep.o ia64-vms-tdep.o"
	;;
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"
	# 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-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-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 solib-svr4.o"
	;;
m68*-*-openbsd*)
	# Target: OpenBSD/m68k
	gdb_target_obs="m68k-tdep.o m68kbsd-tdep.o solib-svr4.o"
	;;

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

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

microblaze*-linux-*|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-svr4.o symfile-mem.o linux-tdep.o"
	gdb_sim=../sim/microblaze/libsim.a
	;;
microblaze*-*-*)
	# 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*-*-linux*)
	# Target: Linux/MIPS
	gdb_target_obs="mips-tdep.o mips-linux-tdep.o glibc-tdep.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 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 obsd-tdep.o solib-svr4.o"
	;;
mips*-*-elf)
	# Target: MIPS ELF
	gdb_target_obs="mips-tdep.o remote-mips.o"
	gdb_sim=../sim/mips/libsim.a
	;;
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
	;;

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

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

nios2*-*-linux*)
	# Target: Altera Nios II running Linux
	gdb_target_obs="nios2-tdep.o nios2-linux-tdep.o solib-svr4.o \
			symfile-mem.o glibc-tdep.o linux-tdep.o"
	;;

nios2*-*-*)
	# Target: Altera Nios II bare-metal
	gdb_target_obs="nios2-tdep.o"
	;;

powerpc*-*-freebsd*)
	# Target: FreeBSD/powerpc
	gdb_target_obs="rs6000-tdep.o ppc-sysv-tdep.o ppc64-tdep.o \
		        ppcfbsd-tdep.o fbsd-tdep.o solib-svr4.o \
			ravenscar-thread.o ppc-ravenscar-thread.o"
	;;

powerpc-*-netbsd* | powerpc-*-knetbsd*-gnu)
	# Target: NetBSD/powerpc
	gdb_target_obs="rs6000-tdep.o ppc-sysv-tdep.o ppcnbsd-tdep.o \
			solib-svr4.o \
			ravenscar-thread.o ppc-ravenscar-thread.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 \
			solib-svr4.o \
			ravenscar-thread.o ppc-ravenscar-thread.o"
	;;
powerpc-*-aix* | rs6000-*-* | powerpc64-*-aix*)
	# Target: PowerPC running AIX
	gdb_target_obs="rs6000-tdep.o rs6000-aix-tdep.o xcoffread.o \
			ppc-sysv-tdep.o solib-aix.o \
			ravenscar-thread.o ppc-ravenscar-thread.o"
	;;
powerpc*-*-linux*)
	# Target: PowerPC running Linux
	gdb_target_obs="rs6000-tdep.o ppc-linux-tdep.o ppc-sysv-tdep.o \
			ppc64-tdep.o solib-svr4.o solib-spu.o \
			spu-multiarch.o \
			glibc-tdep.o symfile-mem.o linux-tdep.o \
			ravenscar-thread.o ppc-ravenscar-thread.o"
	gdb_sim=../sim/ppc/libsim.a
	build_gdbserver=yes
	;;
powerpc-*-lynx*178)
	# Target: PowerPC running Lynx178.
	gdb_target_obs="rs6000-tdep.o rs6000-lynx178-tdep.o \
			xcoffread.o monitor.o dsrec.o ppc-sysv-tdep.o \
			ravenscar-thread.o ppc-ravenscar-thread.o"
	;;
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-svr4.o \
			ravenscar-thread.o ppc-ravenscar-thread.o"
	if test -f ../sim/ppc/Makefile; then
	  gdb_sim=../sim/ppc/libsim.a
	fi
	;;

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

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

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"
	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-svr4.o symfile-mem.o \
			glibc-tdep.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 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 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-svr4.o symfile-mem.o \
			linux-tdep.o \
			ravenscar-thread.o sparc-ravenscar-thread.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
	build_gdbserver=yes
	;;
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-svr4.o linux-tdep.o \
			ravenscar-thread.o sparc-ravenscar-thread.o"
	build_gdbserver=yes
	;;
sparc*-*-freebsd* | sparc*-*-kfreebsd*-gnu)
	# Target: FreeBSD/sparc64
	gdb_target_obs="sparc-tdep.o sparc64-tdep.o sparc64fbsd-tdep.o \
			fbsd-tdep.o solib-svr4.o \
			ravenscar-thread.o sparc-ravenscar-thread.o"
	;;
sparc-*-netbsd* | sparc-*-knetbsd*-gnu)
	# Target: NetBSD/sparc
	gdb_target_obs="sparc-tdep.o sparcnbsd-tdep.o nbsd-tdep.o \
			solib-svr4.o \
			ravenscar-thread.o sparc-ravenscar-thread.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 solib-svr4.o \
			ravenscar-thread.o sparc-ravenscar-thread.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 solib-svr4.o \
			ravenscar-thread.o sparc-ravenscar-thread.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 solib-svr4.o \
			ravenscar-thread.o sparc-ravenscar-thread.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-svr4.o \
			ravenscar-thread.o sparc-ravenscar-thread.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-svr4.o \
			ravenscar-thread.o sparc-ravenscar-thread.o"
	;;
sparc-*-*)
	# Target: SPARC
	gdb_target_obs="sparc-tdep.o \
			ravenscar-thread.o sparc-ravenscar-thread.o"
	gdb_sim=../sim/erc32/libsim.a
	;;
sparc64-*-*)
	# Target: UltraSPARC
	gdb_target_obs="sparc-tdep.o sparc64-tdep.o \
			ravenscar-thread.o sparc-ravenscar-thread.o"
	;;

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

tic6x-*-*linux)
	# Target: GNU/Linux TI C6x
	gdb_target_obs="tic6x-tdep.o tic6x-linux-tdep.o solib-dsbt.o \
			glibc-tdep.o linux-tdep.o"
	;;

tic6x-*-*)
	# Target: TI C6X 
	gdb_target_obs="tic6x-tdep.o"
	;;

tilegx-*-linux*)
	# Target: TILE-Gx
	gdb_target_obs="tilegx-tdep.o tilegx-linux-tdep.o solib-svr4.o \
			symfile-mem.o glibc-tdep.o linux-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 | v850*-*-rtems*)
	# 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 solib-svr4.o"
	;;
vax-*-openbsd*)
	# Target: OpenBSD/vax
	gdb_target_obs="vax-tdep.o vaxobsd-tdep.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-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"
	;;
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-svr4.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 fbsd-tdep.o solib-svr4.o"
	;;
x86_64-*-mingw* | x86_64-*-cygwin*)
        # Target: MingW/amd64
	gdb_target_obs="amd64-tdep.o amd64-windows-tdep.o \
                        i386-tdep.o i386-cygwin-tdep.o i387-tdep.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 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 \
			obsd-tdep.o bsd-uthread.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-svr4.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-svr4.o"
	;;

esac

# map target onto default OS ABI

case "${targ}" in
*-*-freebsd* | *-*-kfreebsd*-gnu)
		gdb_osabi=GDB_OSABI_FREEBSD_ELF ;;
*-*-linux* | *-*-uclinux*)
		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 ;;
powerpc-*-aix* | rs6000-*-* | powerpc64-*-aix*)
                gdb_osabi=GDB_OSABI_AIX ;;
esac

# Check whether this target supports gcore.
# Such target has to call set_gdbarch_find_memory_regions.
gdb_have_gcore=false
for t in x ${gdb_target_obs}; do
  if test "$t" = linux-tdep.o; then
    gdb_have_gcore=true
  fi
done
