mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-26 09:08:59 +00:00
GDB has support for many binary file formats, some which might be very
unlikely to be found in some situations (such as the XCOFF format in
an x86 system). This commit introduces the option for a user to choose
which formats GDB will support at build configuration time.
This is especially useful to avoid possible security concerns with
readers that aren't expected to be used at all, as they are one of
the simplest vectors for an attacker to try and hit GDB with. This
change can also reduce the size of the final binary, if that is a
concern.
This commit adds a switch to the configure script allowing a user to
only enable selected file formats, called --enable-binary-file-formats.
The default behavior when the switch is omitted is to compile all file
formats, keeping the original behavior of the script. At the time of
this commit, the valid options for this option are: dbx, coff (which
includes coff-pe), xcoff, mips, elf, macho and all. All is treated
especially, activating all supported readers.
A few targets may require specific binary file format support, as they
directly call functions defined by the file reader. Specifically,
windows targets require coff support, and rs6000 aix and lynx178 targets
require xcoff support. Considering that those formats are the main - or
only - one available in those targets, I believe it makes sense to
re-enable those readers. If that happens, the script will emit the
following warning:
FOO is required to support one or more requested targets. Adding it
Users aren't able to force the disabling of those formats, since GDB
will not compile without those readers. Ideally we'd like to be able
to disable even those formats, in case a user wants to build GDB only
to examine remote files for example, but the current infrastructure
for the file format readers doesn't allow us to do it.
Mach-O and elf support are also dependent on BFD support being compiled
in. In case one of those was requested and BFD does not support them,
the following error is emitted:
FOO was requested, but BFD does not support it.
Finally, this configure switch is also printed by the "show
configuration" command in GDB.
Reviewed-By: Eli Zaretskii <eliz@gnu.org>
Approved-By: Tom Tromey <tom@tromey.com>
852 lines
21 KiB
Plaintext
852 lines
21 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
|
|
# gdb_have_gcore set to "true"/"false" if this target can run gcore
|
|
# gdb_require_amd_dbgapi set to "true" if this target requires the amd-dbgapi
|
|
# target
|
|
|
|
# NOTE: Every file added to a gdb_target_obs variable for any target here
|
|
# must also be added to either:
|
|
#
|
|
# - ALL_TARGET_OBS
|
|
# - ALL_64_TARGET_OBS
|
|
# - ALL_AMD_DBGAPI_TARGET_OBS
|
|
#
|
|
# in Makefile.in!
|
|
|
|
case $targ in
|
|
*-*-irix* | \
|
|
*-*-solaris2.[01] | *-*-solaris2.[2-9]* | *-*-solaris2.10* | \
|
|
*-*-netbsdpe* | \
|
|
alpha*-*-osf* | \
|
|
alpha*-*-freebsd* | \
|
|
alpha*-*-kfreebsd*-gnu | \
|
|
d10v-*-* | \
|
|
hppa*-*-hiux* | \
|
|
i[34567]86-ncr-* | \
|
|
m68*-cisco*-* | \
|
|
m68*-tandem-* | \
|
|
m68*-*-os68k* | \
|
|
mips*-*-pe | \
|
|
rs6000-*-lynxos* | \
|
|
score-*-* | \
|
|
sh*-*-pe | \
|
|
hppa*-*-hpux* | \
|
|
ia64-*-hpux* | \
|
|
*-*-vxworks* | \
|
|
mt-*-* | \
|
|
null)
|
|
echo "*** Configuration $targ is obsolete." >&2
|
|
echo "*** Support has been REMOVED." >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
x86_tobjs="x86-tdep.o"
|
|
i386_tobjs="i386-tdep.o arch/i386.o i387-tdep.o ${x86_tobjs}"
|
|
amd64_tobjs="ravenscar-thread.o amd64-ravenscar-thread.o \
|
|
amd64-tdep.o arch/amd64.o ${x86_tobjs}"
|
|
|
|
# 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="aarch32-tdep.o aarch64-tdep.o arch/aarch32.o \
|
|
arch/aarch64-insn.o arch/aarch64.o arch/aarch64-mte.o \
|
|
ravenscar-thread.o \
|
|
aarch64-ravenscar-thread.o";;
|
|
|
|
alpha*-*-*)
|
|
# Target: Alpha
|
|
cpu_obs="alpha-tdep.o"
|
|
;;
|
|
|
|
arc*-*-*)
|
|
# Target: Unidentified ARC target
|
|
cpu_obs="arc-tdep.o arch/arc.o"
|
|
;;
|
|
|
|
arm*-*-*)
|
|
cpu_obs="aarch32-tdep.o arch/aarch32.o arch/arm.o \
|
|
arch/arm-get-next-pcs.o arm-tdep.o arm-none-tdep.o"
|
|
;;
|
|
|
|
hppa*-*-*)
|
|
# Target: HP PA-RISC
|
|
cpu_obs="hppa-tdep.o"
|
|
;;
|
|
|
|
i[34567]86-*-*)
|
|
cpu_obs="${i386_tobjs}"
|
|
if test "x$have_64_bit_bfd" = "xyes"; then
|
|
cpu_obs="${amd64_tobjs} ${cpu_obs}"
|
|
fi
|
|
;;
|
|
|
|
ia16*-*-*)
|
|
# Target: Intel IA-16
|
|
cpu_obs="${i386_tobjs}"
|
|
;;
|
|
|
|
ia64*-*-*)
|
|
# Target: Intel IA-64
|
|
cpu_obs="ia64-tdep.o"
|
|
;;
|
|
|
|
loongarch*-*-*)
|
|
# Target: LoongArch baremetal
|
|
cpu_obs="loongarch-tdep.o arch/loongarch.o"
|
|
;;
|
|
|
|
riscv*-*-*)
|
|
cpu_obs="riscv-tdep.o riscv-none-tdep.o arch/riscv.o \
|
|
ravenscar-thread.o riscv-ravenscar-thread.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="netbsd-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/aarch64-mte-linux.o \
|
|
arch/aarch64-scalable-linux.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 \
|
|
solib-svr4-linux.o svr4-tls-tdep.o \
|
|
symfile-mem.o linux-record.o"
|
|
;;
|
|
|
|
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 solib-svr4-linux.o"
|
|
;;
|
|
alpha*-*-netbsd* | alpha*-*-knetbsd*-gnu)
|
|
# Target: NetBSD/alpha
|
|
gdb_target_obs="alpha-mdebug-tdep.o alpha-bsd-tdep.o \
|
|
alpha-netbsd-tdep.o"
|
|
;;
|
|
alpha*-*-openbsd*)
|
|
# Target: OpenBSD/alpha
|
|
gdb_target_obs="alpha-mdebug-tdep.o alpha-bsd-tdep.o \
|
|
alpha-netbsd-tdep.o alpha-obsd-tdep.o netbsd-tdep.o"
|
|
;;
|
|
|
|
amdgcn*-*-*)
|
|
# Target: AMDGPU
|
|
gdb_require_amd_dbgapi=true
|
|
gdb_target_obs="amdgpu-tdep.o solib-rocm.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 solib-svr4-linux.o"
|
|
;;
|
|
|
|
arc*-*-elf32)
|
|
# Target: baremetal ARC elf32 (newlib) target
|
|
gdb_target_obs="arc-newlib-tdep.o"
|
|
;;
|
|
|
|
arc*-*-linux*)
|
|
# Target: ARC machine running Linux
|
|
gdb_target_obs="arc-linux-tdep.o linux-tdep.o solib-svr4.o \
|
|
solib-svr4-linux.o"
|
|
;;
|
|
|
|
arm*-wince-pe | arm*-*-mingw32ce*)
|
|
# Target: ARM based machine running Windows CE (win32)
|
|
gdb_target_obs="arm-wince-tdep.o windows-tdep.o"
|
|
;;
|
|
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 solib-svr4-linux.o symfile-mem.o \
|
|
linux-tdep.o linux-record.o"
|
|
;;
|
|
arm*-*-freebsd*)
|
|
# Target: FreeBSD/arm
|
|
gdb_target_obs="arm-fbsd-tdep.o"
|
|
;;
|
|
arm*-*-netbsd* | arm*-*-knetbsd*-gnu)
|
|
# Target: NetBSD/arm
|
|
gdb_target_obs="arm-netbsd-tdep.o"
|
|
;;
|
|
arm*-*-openbsd*)
|
|
# Target: OpenBSD/arm
|
|
gdb_target_obs="arm-bsd-tdep.o arm-obsd-tdep.o"
|
|
;;
|
|
arm*-*-*)
|
|
# Target: ARM embedded system
|
|
gdb_target_obs="arm-pikeos-tdep.o"
|
|
;;
|
|
|
|
avr-*-*)
|
|
# Target: AVR
|
|
gdb_target_obs="avr-tdep.o"
|
|
;;
|
|
|
|
bfin-*-*linux*)
|
|
# Target: Blackfin Linux
|
|
gdb_target_obs="bfin-tdep.o bfin-linux-tdep.o linux-tdep.o"
|
|
;;
|
|
bfin-*-*)
|
|
# Target: Blackfin processor
|
|
gdb_target_obs="bfin-tdep.o"
|
|
;;
|
|
|
|
bpf-*-*)
|
|
# Target: eBPF
|
|
gdb_target_obs="bpf-tdep.o"
|
|
;;
|
|
|
|
cris*)
|
|
# Target: CRIS
|
|
gdb_target_obs="cris-tdep.o cris-linux-tdep.o linux-tdep.o \
|
|
solib-svr4.o solib-svr4-linux.o"
|
|
;;
|
|
|
|
csky*-*-linux*)
|
|
# Target: CSKY running GNU/Linux
|
|
gdb_target_obs="csky-tdep.o csky-linux-tdep.o glibc-tdep.o \
|
|
linux-tdep.o solib-svr4.o solib-svr4-linux.o"
|
|
;;
|
|
|
|
csky*-*-*)
|
|
# Target: CSKY bare metal
|
|
gdb_target_obs="csky-tdep.o"
|
|
;;
|
|
|
|
frv-*-*)
|
|
# Target: Fujitsu FRV processor
|
|
gdb_target_obs="frv-tdep.o frv-linux-tdep.o linux-tdep.o solib-frv.o"
|
|
;;
|
|
|
|
moxie-*-elf | moxie-*-moxiebox | moxie-*-rtems*)
|
|
gdb_target_obs="moxie-tdep.o"
|
|
;;
|
|
|
|
h8300-*-*)
|
|
# Target: H8300 processor
|
|
gdb_target_obs="h8300-tdep.o"
|
|
;;
|
|
|
|
hppa*-*-linux*)
|
|
# Target: HP PA-RISC running Linux
|
|
gdb_target_obs="hppa-linux-tdep.o glibc-tdep.o \
|
|
linux-tdep.o solib-svr4.o solib-svr4-linux.o \
|
|
symfile-mem.o"
|
|
;;
|
|
hppa*-*-netbsd*)
|
|
# Target: NetBSD/hppa
|
|
gdb_target_obs="hppa-bsd-tdep.o hppa-netbsd-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$have_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-netbsd-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-*-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 solib-svr4-linux.o symfile-mem.o \
|
|
linux-tdep.o linux-record.o \
|
|
arch/i386-linux-tdesc.o \
|
|
arch/x86-linux-tdesc-features.o"
|
|
if test "x$have_64_bit_bfd" = "xyes"; then
|
|
# Target: GNU/Linux x86-64
|
|
gdb_target_obs="amd64-linux-tdep.o \
|
|
arch/amd64-linux-tdesc.o ${gdb_target_obs}"
|
|
fi
|
|
;;
|
|
i[34567]86-*-gnu*)
|
|
# Target: Intel 386 running the GNU Hurd
|
|
gdb_target_obs="i386-gnu-tdep.o glibc-tdep.o solib-svr4.o"
|
|
;;
|
|
i[34567]86-*-cygwin*)
|
|
# Target: Intel 386 running win32
|
|
gdb_target_obs="i386-windows-tdep.o windows-tdep.o"
|
|
;;
|
|
i[34567]86-*-mingw32*)
|
|
# Target: Intel 386 running win32
|
|
gdb_target_obs="i386-windows-tdep.o windows-tdep.o"
|
|
;;
|
|
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 solib-svr4-linux.o symfile-mem.o"
|
|
;;
|
|
ia64-*-*vms*)
|
|
# Target: Intel IA-64 running OpenVMS
|
|
gdb_target_obs="ia64-vms-tdep.o"
|
|
;;
|
|
|
|
iq2000-*-*)
|
|
gdb_target_obs="iq2000-tdep.o"
|
|
;;
|
|
|
|
lm32-*-*)
|
|
gdb_target_obs="lm32-tdep.o"
|
|
;;
|
|
|
|
loongarch*-*-linux*)
|
|
# Target: LoongArch running Linux
|
|
gdb_target_obs="loongarch-linux-tdep.o glibc-tdep.o \
|
|
linux-tdep.o solib-svr4.o solib-svr4-linux.o \
|
|
linux-record.o"
|
|
;;
|
|
|
|
m32c-*-*)
|
|
# Target: Renesas M32C family
|
|
gdb_target_obs="m32c-tdep.o"
|
|
;;
|
|
|
|
m32r*-*-linux*)
|
|
# Target: Renesas M32R running GNU/Linux
|
|
gdb_target_obs="m32r-tdep.o m32r-linux-tdep.o \
|
|
glibc-tdep.o solib-svr4.o solib-svr4-linux.o \
|
|
symfile-mem.o linux-tdep.o"
|
|
;;
|
|
m32r*-*-*)
|
|
# Target: Renesas m32r processor
|
|
gdb_target_obs="m32r-tdep.o"
|
|
;;
|
|
|
|
m68hc11*-*-*|m6811*-*-*)
|
|
# Target: Motorola 68HC11 processor
|
|
gdb_target_obs="m68hc11-tdep.o"
|
|
;;
|
|
|
|
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 \
|
|
solib-svr4-linux.o linux-tdep.o glibc-tdep.o \
|
|
symfile-mem.o"
|
|
;;
|
|
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"
|
|
;;
|
|
|
|
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 \
|
|
solib-svr4-linux.o symfile-mem.o linux-tdep.o"
|
|
;;
|
|
microblaze*-*-*)
|
|
# Target: Xilinx MicroBlaze running standalone
|
|
gdb_target_obs="microblaze-tdep.o"
|
|
;;
|
|
|
|
mips*-*-linux*)
|
|
# Target: Linux/MIPS
|
|
gdb_target_obs="mips-tdep.o mips-linux-tdep.o glibc-tdep.o \
|
|
solib-svr4.o solib-svr4-linux.o symfile-mem.o \
|
|
linux-tdep.o"
|
|
;;
|
|
mips*-*-netbsd* | mips*-*-knetbsd*-gnu)
|
|
# Target: MIPS running NetBSD
|
|
gdb_target_obs="mips-tdep.o mips-netbsd-tdep.o"
|
|
;;
|
|
mips*-*-freebsd*)
|
|
# Target: MIPS running FreeBSD
|
|
gdb_target_obs="mips-tdep.o mips-fbsd-tdep.o"
|
|
;;
|
|
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"
|
|
;;
|
|
mips*-*-elf)
|
|
# Target: MIPS ELF
|
|
gdb_target_obs="mips-tdep.o"
|
|
;;
|
|
mips*-*-*)
|
|
# Target: MIPS
|
|
gdb_target_obs="mips-tdep.o"
|
|
;;
|
|
|
|
mn10300-*-*)
|
|
# Target: Matsushita mn10300
|
|
gdb_target_obs="mn10300-tdep.o"
|
|
;;
|
|
|
|
msp430-*-elf*)
|
|
gdb_target_obs="msp430-tdep.o"
|
|
;;
|
|
|
|
nds32*-*-elf)
|
|
# Target: AndesTech NDS32 core
|
|
gdb_target_obs="nds32-tdep.o"
|
|
;;
|
|
|
|
or1k*-*-linux*)
|
|
# Target: OpenCores OpenRISC 1000 32-bit running Linux
|
|
gdb_target_obs="or1k-tdep.o or1k-linux-tdep.o solib-svr4.o \
|
|
solib-svr4-linux.o symfile-mem.o glibc-tdep.o \
|
|
linux-tdep.o"
|
|
;;
|
|
|
|
or1k-*-* | or1knd-*-*)
|
|
# Target: OpenCores OpenRISC 1000 32-bit implementation bare metal
|
|
gdb_target_obs="or1k-tdep.o"
|
|
;;
|
|
|
|
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-netbsd-tdep.o \
|
|
ravenscar-thread.o ppc-ravenscar-thread.o"
|
|
;;
|
|
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 \
|
|
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-svr4-linux.o \
|
|
svr4-tls-tdep.o \
|
|
glibc-tdep.o symfile-mem.o linux-tdep.o \
|
|
ravenscar-thread.o ppc-ravenscar-thread.o \
|
|
linux-record.o \
|
|
arch/ppc-linux-common.o"
|
|
;;
|
|
powerpc-*-lynx*178)
|
|
# Target: PowerPC running Lynx178.
|
|
gdb_target_obs="rs6000-tdep.o rs6000-lynx178-tdep.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"
|
|
;;
|
|
|
|
s390*-*-linux*)
|
|
# Target: S390 running Linux
|
|
gdb_target_obs="s390-linux-tdep.o s390-tdep.o solib-svr4.o \
|
|
solib-svr4-linux.o \
|
|
linux-tdep.o linux-record.o symfile-mem.o \
|
|
svr4-tls-tdep.o"
|
|
;;
|
|
|
|
riscv*-*-freebsd*)
|
|
# Target: FreeBSD/riscv
|
|
gdb_target_obs="riscv-fbsd-tdep.o"
|
|
;;
|
|
|
|
riscv*-*-linux*)
|
|
# Target: Linux/RISC-V
|
|
gdb_target_obs="riscv-linux-tdep.o riscv-canonicalize-syscall-gen.o \
|
|
glibc-tdep.o linux-tdep.o solib-svr4.o solib-svr4-linux.o \
|
|
symfile-mem.o \
|
|
linux-record.o svr4-tls-tdep.o"
|
|
;;
|
|
|
|
riscv*-*-*)
|
|
# Target: RISC-V architecture
|
|
gdb_target_obs=""
|
|
;;
|
|
|
|
rl78-*-elf)
|
|
# Target: Renesas rl78
|
|
gdb_target_obs="rl78-tdep.o"
|
|
;;
|
|
|
|
rx-*-*)
|
|
# Target: Renesas RX
|
|
gdb_target_obs="rx-tdep.o"
|
|
;;
|
|
|
|
sh*-*-linux*)
|
|
# Target: GNU/Linux Super-H
|
|
gdb_target_obs="sh-tdep.o sh-linux-tdep.o \
|
|
solib-svr4.o solib-svr4-linux.o symfile-mem.o \
|
|
glibc-tdep.o linux-tdep.o"
|
|
;;
|
|
sh*-*-netbsd* | sh*-*-knetbsd*-gnu)
|
|
# Target: NetBSD/sh
|
|
gdb_target_obs="sh-tdep.o sh-netbsd-tdep.o"
|
|
;;
|
|
sh*-*-openbsd*)
|
|
# Target: OpenBSD/sh
|
|
gdb_target_obs="sh-tdep.o sh-netbsd-tdep.o"
|
|
;;
|
|
sh*)
|
|
# Target: Embedded Renesas Super-H processor
|
|
gdb_target_obs="sh-tdep.o"
|
|
;;
|
|
|
|
sparc-*-linux*)
|
|
# Target: GNU/Linux SPARC
|
|
gdb_target_obs="sparc-tdep.o \
|
|
sparc-linux-tdep.o solib-svr4.o solib-svr4-linux.o \
|
|
symfile-mem.o \
|
|
linux-tdep.o \
|
|
ravenscar-thread.o sparc-ravenscar-thread.o"
|
|
if test "x$have_64_bit_bfd" = "xyes"; then
|
|
# Target: GNU/Linux UltraSPARC
|
|
gdb_target_obs="sparc64-tdep.o \
|
|
sparc64-linux-tdep.o ${gdb_target_obs}"
|
|
fi
|
|
;;
|
|
sparc64-*-linux*)
|
|
# Target: GNU/Linux UltraSPARC
|
|
gdb_target_obs="sparc64-tdep.o \
|
|
sparc64-linux-tdep.o sparc-tdep.o \
|
|
sparc-linux-tdep.o solib-svr4.o solib-svr4-linux.o \
|
|
linux-tdep.o \
|
|
ravenscar-thread.o sparc-ravenscar-thread.o"
|
|
;;
|
|
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-netbsd-tdep.o \
|
|
ravenscar-thread.o sparc-ravenscar-thread.o"
|
|
;;
|
|
sparc64-*-netbsd* | sparc64-*-knetbsd*-gnu)
|
|
# Target: NetBSD/sparc64
|
|
gdb_target_obs="sparc64-tdep.o sparc64-netbsd-tdep.o sparc-tdep.o \
|
|
sparc-netbsd-tdep.o \
|
|
ravenscar-thread.o sparc-ravenscar-thread.o"
|
|
;;
|
|
sparc-*-openbsd*)
|
|
# Target: OpenBSD/sparc
|
|
gdb_target_obs="sparc-tdep.o sparc-netbsd-tdep.o sparc-obsd-tdep.o \
|
|
netbsd-tdep.o bsd-uthread.o \
|
|
ravenscar-thread.o sparc-ravenscar-thread.o"
|
|
;;
|
|
sparc64-*-openbsd*)
|
|
# Target: OpenBSD/sparc64
|
|
gdb_target_obs="sparc64-tdep.o sparc64-netbsd-tdep.o sparc64-obsd-tdep.o \
|
|
sparc-tdep.o sparc-netbsd-tdep.o sparc-obsd-tdep.o \
|
|
netbsd-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"
|
|
;;
|
|
sparc64-*-*)
|
|
# Target: UltraSPARC
|
|
gdb_target_obs="sparc-tdep.o sparc64-tdep.o \
|
|
ravenscar-thread.o sparc-ravenscar-thread.o"
|
|
;;
|
|
|
|
s12z-*-*)
|
|
# Target: Freescale S12z
|
|
gdb_target_obs="s12z-tdep.o"
|
|
;;
|
|
|
|
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 \
|
|
solib-svr4-linux.o \
|
|
symfile-mem.o glibc-tdep.o linux-tdep.o"
|
|
;;
|
|
|
|
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"
|
|
;;
|
|
|
|
v850*-*-elf | v850*-*-rtems*)
|
|
# Target: NEC V850 processor
|
|
gdb_target_obs="v850-tdep.o"
|
|
;;
|
|
|
|
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 svr4-tls-tdep.o \
|
|
solib-svr4.o solib-svr4-linux.o symfile-mem.o \
|
|
linux-tdep.o linux-record.o \
|
|
arch/i386-linux-tdesc.o arch/amd64-linux-tdesc.o \
|
|
arch/x86-linux-tdesc-features.o"
|
|
;;
|
|
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-windows-tdep.o \
|
|
windows-tdep.o"
|
|
;;
|
|
x86_64-*-netbsd* | x86_64-*-knetbsd*-gnu)
|
|
# Target: NetBSD/amd64
|
|
gdb_target_obs="amd64-netbsd-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"
|
|
;;
|
|
x86_64-*-gnu*)
|
|
# Target: x86_64 running the GNU Hurd
|
|
gdb_target_obs="amd64-gnu-tdep.o glibc-tdep.o solib-svr4.o"
|
|
;;
|
|
xtensa*-*-*linux*)
|
|
# Target: GNU/Linux Xtensa
|
|
gdb_target_obs="xtensa-linux-tdep.o symfile-mem.o linux-tdep.o"
|
|
;;
|
|
z80*)
|
|
# Target: Z80
|
|
gdb_target_obs="z80-tdep.o"
|
|
;;
|
|
|
|
esac
|
|
|
|
# Put them together.
|
|
|
|
gdb_target_obs="${cpu_obs} ${os_obs} ${gdb_target_obs}"
|
|
|
|
# Get the sim settings.
|
|
# NB: Target matching is aligned with sim/configure.ac. Changes must be kept
|
|
# in sync with that file.
|
|
|
|
case "${targ}" in
|
|
aarch64*-*-*) gdb_sim=aarch64 ;;
|
|
avr*-*-*) gdb_sim=avr ;;
|
|
bfin-*-*) gdb_sim=bfin ;;
|
|
bpf-*-*) gdb_sim=bpf ;;
|
|
cris-*-*|cris32-*-*) gdb_sim=cris ;;
|
|
frv-*-*) gdb_sim=frv ;;
|
|
ft32-*-*) gdb_sim=ft32 ;;
|
|
h8300*-*-*) gdb_sim=h8300 ;;
|
|
iq2000-*-*) gdb_sim=iq2000 ;;
|
|
lm32-*-*) gdb_sim=lm32 ;;
|
|
m32c-*-*) gdb_sim=m32c ;;
|
|
m32r-*-*) gdb_sim=m32r ;;
|
|
m68hc11-*-*|m6811-*-*) gdb_sim=m68hc11 ;;
|
|
microblaze*-*-*) gdb_sim=microblaze ;;
|
|
mips*-*-*) gdb_sim=mips ;;
|
|
mn10300*-*-*) gdb_sim=mn10300 ;;
|
|
moxie-*-*) gdb_sim=moxie ;;
|
|
msp430*-*-*) gdb_sim=msp430 ;;
|
|
or1k*-*-*) gdb_sim=or1k ;;
|
|
powerpc*-*-*) gdb_sim=ppc ;;
|
|
riscv*-*-*) gdb_sim=riscv ;;
|
|
rl78-*-*) gdb_sim=rl78 ;;
|
|
rx-*-*) gdb_sim=rx ;;
|
|
sh*-*-*) gdb_sim=sh ;;
|
|
sparc-*-*) gdb_sim=erc32 ;;
|
|
v850*-*-*) gdb_sim=v850 ;;
|
|
esac
|
|
if test "x$gdb_sim" != "x"; then
|
|
gdb_sim="../sim/${gdb_sim}/libsim.a"
|
|
fi
|
|
|
|
# map target onto default OS ABI
|
|
|
|
case "${targ}" in
|
|
*-*-freebsd* | *-*-kfreebsd*-gnu)
|
|
gdb_osabi=GDB_OSABI_FREEBSD ;;
|
|
*-*-linux* | *-*-uclinux*)
|
|
gdb_osabi=GDB_OSABI_LINUX ;;
|
|
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*) gdb_osabi=GDB_OSABI_WINDOWS ;;
|
|
*-*-cygwin*) gdb_osabi=GDB_OSABI_CYGWIN ;;
|
|
*-*-dicos*) gdb_osabi=GDB_OSABI_DICOS ;;
|
|
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
|
|
|
|
# Decide which file formats are absolutely required based on
|
|
# the requested targets. Warn later that they are added, in
|
|
# case the user didn't manually request them, or all readers.
|
|
# It's fine to add the same format multiple times since the
|
|
# loop that reads the options to FORMAT_OBS will ensure that
|
|
# they are only added once.
|
|
for i in $gdb_target_obs; do
|
|
case "${i}" in
|
|
*"windows-tdep.o" ) target_formats="${target_formats} coff";;
|
|
"rs6000-aix-tdep.o" ) target_formats="${target_formats} xcoff";;
|
|
"rs6000-lynx178-tdep.o" ) target_formats="${target_formats} xcoff";;
|
|
esac
|
|
done
|