binutils-gdb/gdb/configure.tgt
Andrew Burgess dbbb1059e6 gdb: Initial baremetal riscv support
This commit introduces basic support for baremetal RiscV as a GDB
target.  This target is currently only tested against the RiscV software
simulator, which is not included as part of this commit.  The target has
been tested against the following RiscV variants: rv32im, rv32imc,
rv32imf, rv32imfc, rv64im, rv64imc, rv64imfd, rv64imfdc.

Across these variants we pass on average 34858 tests, and fail 272
tests, which is ~0.8%.

The RiscV has a feature of its ABI where structures with a single
floating point field, a single complex float field, or one float and
one integer field are treated differently for argument passing.  The
new test gdb.base/infcall-nested-structs.exp is added to cover this
feature.  As passing these structures should work on all targets then
I've made the test as a generic one, even though, for most targets,
there's probably nothing special about any of these cases.

gdb/ChangeLog:

	* Makefile.in (ALL_TARGET_OBS): Add riscv-tdep.o
	(HFILES_NO_SRCDIR): Add riscv-tdep.h.
	(ALLDEPFILES): Add riscv-tdep.c
	* configure.tgt: Add riscv support.
	* riscv-tdep.c: New file.
	* riscv-tdep.h: New file.
	* NEWS: Mention new target.
	* MAINTAINERS: Add entry for riscv.

gdb/testsuite/ChangeLog:

	* gdb.base/infcall-nested-structs.exp: New file.
	* gdb.base/infcall-nested-structs.c: New file.
	* gdb.base/float.exp: Add riscv support.
2018-03-06 09:59:09 +00:00

786 lines
19 KiB
Plaintext

# 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* | \
alpha*-*-osf* | \
alpha*-*-freebsd* | \
alpha*-*-kfreebsd*-gnu | \
d10v-*-* | \
hppa*-*-hiux* | \
i[34567]86-ncr-* | \
m68*-cisco*-* | \
m68*-tandem-* | \
m68*-*-os68k* | \
mips*-*-pe | \
rs6000-*-lynxos* | \
sh*-*-pe | \
hppa*-*-hpux* | \
ia64-*-hpux* | \
*-*-vxworks* | \
mt-*-* | \
null)
echo "*** Configuration $targ is obsolete." >&2
echo "*** Support has been REMOVED." >&2
exit 1
;;
esac
i386_tobjs="i386-tdep.o arch/i386.o i387-tdep.o"
amd64_tobjs="amd64-tdep.o arch/amd64.o"
# Here are three sections to get a list of target specific object
# files according to target triplet $TARG.
# 1. Get the objects per cpu in $TARG.
case "${targ}" in
aarch64*-*-*)
cpu_obs="aarch64-tdep.o arch/aarch64-insn.o arch/aarch64.o";;
alpha*-*-*)
# Target: Alpha
cpu_obs="alpha-tdep.o"
;;
arc*-*-*)
# Target: Unidentified ARC target
cpu_obs="arc-tdep.o"
;;
arm*-*-*)
cpu_obs="arch/arm.o arch/arm-get-next-pcs.o arm-tdep.o";;
hppa*-*-*)
# Target: HP PA-RISC
cpu_obs="hppa-tdep.o"
;;
i[34567]86-*-*)
cpu_obs="${i386_tobjs}"
if test "x$enable_64_bit_bfd" = "xyes"; then
cpu_obs="${amd64_tobjs} ${cpu_obs}"
fi
;;
ia64*-*-*)
# Target: Intel IA-64
cpu_obs="ia64-tdep.o"
;;
x86_64-*-*)
cpu_obs="${i386_tobjs} ${amd64_tobjs}";;
xtensa*)
# Target: Tensilica Xtensa processors
cpu_obs="xtensa-tdep.o xtensa-config.o solib-svr4.o"
;;
esac
# 2. Get the objects per os in $TARG.
case "${targ}" in
*-*-freebsd* | *-*-kfreebsd*-gnu)
os_obs="fbsd-tdep.o solib-svr4.o";;
*-*-netbsd* | *-*-knetbsd*-gnu)
os_obs="nbsd-tdep.o solib-svr4.o";;
*-*-openbsd*)
os_obs="obsd-tdep.o solib-svr4.o";;
esac
# 3. Get the rest of objects.
case "${targ}" in
aarch64*-*-elf | aarch64*-*-rtems*)
# Target: AArch64 embedded system
gdb_target_obs="aarch64-newlib-tdep.o"
;;
aarch64*-*-freebsd*)
# Target: FreeBSD/aarch64
gdb_target_obs="aarch64-fbsd-tdep.o"
;;
aarch64*-*-linux*)
# Target: AArch64 linux
gdb_target_obs="aarch64-linux-tdep.o arch/aarch64.o\
arch/arm.o arch/arm-linux.o arch/arm-get-next-pcs.o \
arm-tdep.o arm-linux-tdep.o \
glibc-tdep.o linux-tdep.o solib-svr4.o \
symfile-mem.o linux-record.o"
build_gdbserver=yes
;;
alpha*-*-linux*)
# Target: Little-endian Alpha running Linux
gdb_target_obs="alpha-mdebug-tdep.o alpha-linux-tdep.o \
linux-tdep.o solib-svr4.o"
;;
alpha*-*-netbsd* | alpha*-*-knetbsd*-gnu)
# Target: NetBSD/alpha
gdb_target_obs="alpha-mdebug-tdep.o alpha-bsd-tdep.o \
alpha-nbsd-tdep.o"
;;
alpha*-*-openbsd*)
# Target: OpenBSD/alpha
gdb_target_obs="alpha-mdebug-tdep.o alpha-bsd-tdep.o \
alpha-nbsd-tdep.o alpha-obsd-tdep.o nbsd-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"
;;
arc*-*-elf32)
# Target: baremetal ARC elf32 (newlib) target
gdb_target_obs="arc-newlib-tdep.o"
;;
arm*-wince-pe | arm*-*-mingw32ce*)
# Target: ARM based machine running Windows CE (win32)
gdb_target_obs="arm-wince-tdep.o windows-tdep.o"
build_gdbserver=yes
;;
arm*-*-linux*)
# Target: ARM based machine running GNU/Linux
gdb_target_obs="arch/arm-linux.o arm-linux-tdep.o glibc-tdep.o \
solib-svr4.o symfile-mem.o linux-tdep.o linux-record.o"
build_gdbserver=yes
;;
arm*-*-freebsd*)
# Target: FreeBSD/arm
gdb_target_obs="arm-fbsd-tdep.o"
;;
arm*-*-netbsd* | arm*-*-knetbsd*-gnu)
# Target: NetBSD/arm
gdb_target_obs="arm-nbsd-tdep.o"
;;
arm*-*-openbsd*)
# Target: OpenBSD/arm
gdb_target_obs="arm-bsd-tdep.o arm-obsd-tdep.o"
;;
arm*-*-symbianelf*)
# Target: SymbianOS/arm
gdb_target_obs="arm-symbian-tdep.o"
;;
arm*-*-*)
# Target: ARM embedded system
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-*-moxiebox | moxie-*-rtems*)
gdb_target_obs="moxie-tdep.o"
gdb_sim=../sim/moxie/libsim.a
;;
h8300-*-*)
# Target: H8300 processor
gdb_target_obs="h8300-tdep.o"
gdb_sim=../sim/h8300/libsim.a
;;
hppa*-*-linux*)
# Target: HP PA-RISC running Linux
gdb_target_obs="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-bsd-tdep.o hppa-nbsd-tdep.o solib-svr4.o"
;;
hppa*-*-openbsd*)
# Target: OpenBSD/hppa
gdb_target_obs="hppa-bsd-tdep.o hppa-obsd-tdep.o solib-svr4.o"
;;
i[34567]86-*-darwin*)
# Target: Darwin/i386
gdb_target_obs="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-darwin-tdep.o ${gdb_target_obs}"
fi
;;
i[34567]86-*-dicos*)
# Target: DICOS/i386
gdb_target_obs="dicos-tdep.o i386-dicos-tdep.o"
;;
i[34567]86-*-freebsd* | i[34567]86-*-kfreebsd*-gnu)
# Target: FreeBSD/i386
gdb_target_obs="i386-bsd-tdep.o i386-fbsd-tdep.o "
;;
i[34567]86-*-netbsd* | i[34567]86-*-knetbsd*-gnu)
# Target: NetBSD/i386
gdb_target_obs="i386-bsd-tdep.o i386-nbsd-tdep.o "
;;
i[34567]86-*-openbsd*)
# Target: OpenBSD/i386
gdb_target_obs="i386-bsd-tdep.o i386-obsd-tdep.o bsd-uthread.o"
;;
i[34567]86-*-nto*)
# Target: Intel 386 running qnx6.
gdb_target_obs="solib-svr4.o \
i386-nto-tdep.o nto-tdep.o"
build_gdbserver=yes
;;
i[34567]86-*-solaris2* | x86_64-*-solaris2*)
# Target: Solaris x86_64
gdb_target_obs="${i386_tobjs} ${amd64_tobjs} \
amd64-sol2-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-linux-tdep.o \
glibc-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-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-gnu-tdep.o solib-svr4.o"
;;
i[34567]86-*-cygwin*)
# Target: Intel 386 running win32
gdb_target_obs="i386-cygwin-tdep.o windows-tdep.o"
build_gdbserver=yes
;;
i[34567]86-*-mingw32*)
# Target: Intel 386 running win32
gdb_target_obs="i386-cygwin-tdep.o windows-tdep.o"
build_gdbserver=yes
;;
i[34567]86-*-go32* | i[34567]86-*-msdosdjgpp*)
# Target: i386 running DJGPP/go32.
gdb_target_obs="i386-go32-tdep.o"
;;
ia64-*-linux*)
# Target: Intel IA-64 running GNU/Linux
gdb_target_obs="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-vms-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 \
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"
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
gdb_target_obs="m68k-tdep.o"
;;
m68*-*-linux*)
# Target: Motorola m68k with a.out and ELF
gdb_target_obs="m68k-tdep.o m68k-linux-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 m68k-bsd-tdep.o"
;;
m68*-*-openbsd*)
# Target: OpenBSD/m68k
gdb_target_obs="m68k-tdep.o m68k-bsd-tdep.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 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"
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 mips-nbsd-tdep.o"
gdb_sim=../sim/mips/libsim.a
;;
mips*-*-freebsd*)
# Target: MIPS running FreeBSD
gdb_target_obs="mips-tdep.o mips-fbsd-tdep.o"
gdb_sim=../sim/mips/libsim.a
;;
mips64*-*-openbsd*)
# Target: OpenBSD/mips64
gdb_target_obs="mips-tdep.o mips64-obsd-tdep.o"
;;
mips*-sde*-elf*)
# Target: MIPS SDE
gdb_target_obs="mips-tdep.o mips-sde-tdep.o"
gdb_sim=../sim/mips/libsim.a
;;
mips*-*-elf)
# Target: MIPS ELF
gdb_target_obs="mips-tdep.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
;;
nds32*-*-elf)
# Target: AndesTech NDS32 core
gdb_target_obs="nds32-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"
;;
or1k-*-* | or1knd-*-*)
# Target: OpenCores OpenRISC 1000 32-bit implementation bare metal
gdb_target_obs="or1k-tdep.o"
gdb_sim=../sim/or1k/libsim.a
;;
powerpc*-*-freebsd*)
# Target: FreeBSD/powerpc
gdb_target_obs="rs6000-tdep.o ppc-sysv-tdep.o ppc64-tdep.o \
ppc-fbsd-tdep.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 ppc-nbsd-tdep.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 ppc-obsd-tdep.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 \
linux-record.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 ppc-sysv-tdep.o \
ravenscar-thread.o ppc-ravenscar-thread.o"
;;
powerpc*-*-*)
# Target: PowerPC running eabi
gdb_target_obs="rs6000-tdep.o ppc-sysv-tdep.o solib-svr4.o \
ravenscar-thread.o ppc-ravenscar-thread.o"
gdb_sim=../sim/ppc/libsim.a
;;
s390*-*-linux*)
# Target: S390 running Linux
gdb_target_obs="s390-linux-tdep.o s390-tdep.o solib-svr4.o \
linux-tdep.o linux-record.o symfile-mem.o"
build_gdbserver=yes
;;
riscv*-*-*)
# Target: RISC-V architecture
gdb_target_obs="riscv-tdep.o"
;;
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"
build_gdbserver=yes
;;
sh*-*-linux*)
# Target: GNU/Linux Super-H
gdb_target_obs="sh-tdep.o sh64-tdep.o sh-linux-tdep.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 sh-nbsd-tdep.o"
gdb_sim=../sim/sh/libsim.a
;;
sh*-*-openbsd*)
# Target: OpenBSD/sh
gdb_target_obs="sh-tdep.o sh64-tdep.o sh-nbsd-tdep.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 processor
gdb_target_obs="sh-tdep.o sh64-tdep.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 sparc64-fbsd-tdep.o \
ravenscar-thread.o sparc-ravenscar-thread.o"
;;
sparc-*-netbsd* | sparc-*-knetbsd*-gnu)
# Target: NetBSD/sparc
gdb_target_obs="sparc-tdep.o sparc-nbsd-tdep.o \
ravenscar-thread.o sparc-ravenscar-thread.o"
;;
sparc64-*-netbsd* | sparc64-*-knetbsd*-gnu)
# Target: NetBSD/sparc64
gdb_target_obs="sparc64-tdep.o sparc64-nbsd-tdep.o sparc-tdep.o \
sparc-nbsd-tdep.o \
ravenscar-thread.o sparc-ravenscar-thread.o"
;;
sparc-*-openbsd*)
# Target: OpenBSD/sparc
gdb_target_obs="sparc-tdep.o sparc-nbsd-tdep.o sparc-obsd-tdep.o \
nbsd-tdep.o bsd-uthread.o \
ravenscar-thread.o sparc-ravenscar-thread.o"
;;
sparc64-*-openbsd*)
# Target: OpenBSD/sparc64
gdb_target_obs="sparc64-tdep.o sparc64-nbsd-tdep.o sparc64-obsd-tdep.o \
sparc-tdep.o sparc-nbsd-tdep.o sparc-obsd-tdep.o \
nbsd-tdep.o bsd-uthread.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.
;;
ft32-*-elf)
gdb_target_obs="ft32-tdep.o"
gdb_sim=../sim/ft32/libsim.a
;;
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 solib-svr4.o"
;;
vax-*-openbsd*)
# Target: OpenBSD/vax
gdb_target_obs="vax-tdep.o"
;;
vax-*-*)
# Target: VAX
gdb_target_obs="vax-tdep.o"
;;
x86_64-*-darwin*)
# Target: Darwin/x86-64
gdb_target_obs="${i386_tobjs} \
i386-darwin-tdep.o amd64-darwin-tdep.o \
solib-darwin.o"
;;
x86_64-*-dicos*)
# Target: DICOS/x86-64
gdb_target_obs="${i386_tobjs} \
dicos-tdep.o i386-dicos-tdep.o amd64-dicos-tdep.o"
;;
x86_64-*-elf*)
gdb_target_obs="${i386_tobjs}"
;;
x86_64-*-linux*)
# Target: GNU/Linux x86-64
gdb_target_obs="amd64-linux-tdep.o ${i386_tobjs} \
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-fbsd-tdep.o ${i386_tobjs} \
i386-bsd-tdep.o i386-fbsd-tdep.o"
;;
x86_64-*-mingw* | x86_64-*-cygwin*)
# Target: MingW/amd64
gdb_target_obs="amd64-windows-tdep.o \
${i386_tobjs} i386-cygwin-tdep.o \
windows-tdep.o"
build_gdbserver=yes
;;
x86_64-*-netbsd* | x86_64-*-knetbsd*-gnu)
# Target: NetBSD/amd64
gdb_target_obs="amd64-nbsd-tdep.o ${i386_tobjs}"
;;
x86_64-*-openbsd*)
# Target: OpenBSD/amd64
gdb_target_obs="amd64-obsd-tdep.o ${i386_tobjs} \
i386-bsd-tdep.o i386-obsd-tdep.o \
bsd-uthread.o"
;;
x86_64-*-rtems*)
gdb_target_obs="${amd64_tobjs} ${i386_tobjs} i386-bsd-tdep.o"
;;
xtensa*-*-linux*) gdb_target=linux
# Target: GNU/Linux Xtensa
gdb_target_obs="xtensa-linux-tdep.o symfile-mem.o linux-tdep.o"
build_gdbserver=yes
;;
esac
# Put them together.
gdb_target_obs="${cpu_obs} ${os_obs} ${gdb_target_obs}"
# map target onto default OS ABI
case "${targ}" in
*-*-freebsd* | *-*-kfreebsd*-gnu)
gdb_osabi=GDB_OSABI_FREEBSD ;;
*-*-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 ;;
*-*-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