forked from Imagelibrary/binutils-gdb
We have a discrepancy with 64-bit BFD handling across our component
subdirectories leading to link failures such as:
ld: ../opcodes/.libs/libopcodes.a(disassemble.o): in function `disassembler': disassemble.c:(.text+0x65): undefined reference to `print_insn_alpha'
ld: disassemble.c:(.text+0x105): undefined reference to `print_insn_ia64'
ld: disassemble.c:(.text+0x11d): undefined reference to `print_insn_loongarch'
ld: disassemble.c:(.text+0x1a1): undefined reference to `print_insn_big_mips'
[...]
with some configurations having a 32-bit host and 64-bit BFD, such as:
`--host=i386-linux-gnu --target=riscv64-linux-gnu --enable-targets=all'.
This is ultimately due to how 64-bit BFD is enabled for bfd/ itself and
other subdirectorses and has been a regression from commit 1d5269c994
("unify 64-bit bfd checks").
For bfd/ the BFD_64_BIT autoconf macro from config/bfd64.m4 is used
combined with this logic in bfd/configure.ac:
case ${host64}-${target64}-${want64} in
*true*)
wordsize=64
bfd64_libs='$(BFD64_LIBS)'
all_backends='$(BFD64_BACKENDS) $(BFD32_BACKENDS)'
[...]
;;
false-false-false)
wordsize=32
all_backends='$(BFD32_BACKENDS)'
;;
esac
where the value of ${wordsize} switches between 32-bit and 64-bit BFD
via these pieces:
#define BFD_ARCH_SIZE @wordsize@
and:
#if BFD_ARCH_SIZE >= 64
#define BFD64
#endif
in bfd/bfd-in.h, which ultimately becomes a part of "bfd.h".
Then ${host64} is determined in bfd/configure.ac from the host's word
size, via the host's pointer size:
if test "x${ac_cv_sizeof_void_p}" = "x8"; then
host64=true
fi
And ${target64} is determined in bfd/configure.ac from the target's word
size:
if test ${target_size} = 64; then
target64=true
fi
Where multiple targets have been requested with `--enable-targets=all'
the presence of any 64-bit target will set "true" here.
Finally ${want64} is set according to `--enable-64-bit-bfd' user option
with an arrangement involving BFD_64_BIT:
BFD_64_BIT
if test $enable_64_bit_bfd = yes ; then
want64=true
else
want64=false
fi
which also, redundantly, checks and sets its result upon the host's word
size. Lastly ${want64} is also selectively set by target fragments in
bfd/config.bfd, which mostly if not completely overlaps with ${target64}
setting as described above.
Conversely other subdirectories only rely on BFD_64_BIT, so they fail to
notice that BFD is 64-bit and do not enable their 64-bit handling where
the host requested is 32-bit and 64-bit BFD has been enabled other than
with `--enable-64-bit-bfd'. One consequence is opcodes/disassemble.c
enables calls to its numerous own 64-bit backends by checking the BFD64
macro from "bfd.h", however does not actually enable said backends in
its Makefile. Hence the link errors quoted above.
Address the problem then by moving the `--enable-64-bit-bfd' option back
to bfd/configure.ac and remove the call to BFD_64_BIT from there and
then rewrite the macro in terms of checking for the presence of BFD64
macro in "bfd.h", which is the canonical way of determining whether BFD
is 64-bit or not.
Rather than running `grep' directly on ../bfd/bfd-in3.h as the opcodes/
fragment used to before the problematic commit:
if grep '#define BFD_ARCH_SIZE 64' ../bfd/bfd-in3.h > /dev/null; then
run the preprocessor on "bfd.h", which allows to invoke the macro from
configure.ac files placed in subdirectories located at deeper levels, by
relying on the preprocessor's search path.
This requires however that the invokers rely on `all-bfd' rather than
`configure-bfd' for their `configure' invocation stage, because "bfd.h"
is made by `make all' rather than `configure' in bfd/.
Do not cache the result of this check however, as reconfiguring a tree
such as to flip `--enable-64-bit-bfd' on or to change a secondary target
may affect BFD64 and we have no access to information about secondary
targets in BFD_64_BIT.
Also remove the ENABLE_BFD_64_BIT automake conditional, as it's not used
anywhere.
Last but not least remove the hack from gdb/configure.ac to fail builds
for `mips*-*-*' hosts where `--enable-targets=all' has been requested,
but `--enable-64-bit-bfd' has not as it's no longer needed. Such builds
complete successfully now, having enabled 64-bit BFD implicitly.
Tested-By: Guinevere Larsen <guinevere@redhat.com>
Tested-By: Luis Machado <luis.machado@arm.com>
Approved-By: Alan Modra <amodra@gmail.com>
Approved-By: Luis Machado <luis.machado@arm.com>
822 lines
20 KiB
Plaintext
822 lines
20 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 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"
|
|
;;
|
|
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"
|
|
;;
|
|
|
|
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"
|
|
;;
|
|
|
|
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 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"
|
|
;;
|
|
|
|
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"
|
|
;;
|
|
|
|
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 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 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 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 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 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 \
|
|
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 \
|
|
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 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 \
|
|
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 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 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 \
|
|
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"
|
|
;;
|
|
|
|
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 \
|
|
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 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 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 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 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 \
|
|
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 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
|