mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-27 04:52:05 +08:00
dbbb1059e6
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.
786 lines
19 KiB
Plaintext
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
|