Files
binutils-gdb/gdb/configure.tgt
Guinevere Larsen 809c1abc19 gdb, configure: Add enable-binary-file-format option for configure
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>
2025-08-14 13:23:52 -03:00

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