binutils-gdb/gdb/configure.tgt
Anton Kolesov 8d7f06359a arc: Add GNU/Linux support for ARC
ARC Linux targets differences from baremetal:

- No support for hardware single instruction stepping.
- Different access rules to registers.
- Use of another instruction for breakpoints.

v2: Changes after Tom's remarks [1]
 arc-linux-tdep.c
  - Use true/false instead of TRUE/FALSE.
  - arc_linux_sw_breakpoint_from_kind (): Break long lines into two.
  - arc_linux_sw_breakpoint_from_kind (): Remove starting blank line.
  - Use explicit number evaluation, e.g: if (a & b) -> if ((a & b) != 0)
 arc-tdep.c
  - Use explicit number evaluation, e.g: if (a & b) -> if ((a & b) != 0)
 gdb/configure.tgt
  - arc*-*-linux*): Remove "build_gdbserver=yes".

v3: Changes after Simon's remarks [2]
  arc-linux-tdep.c
  - Use "return trap_size" instead of cryptic "return 2".
  - Removed unnecessary curly braces.
  - Removed "void" from "_initialize_arc_linux_tdep (void)".

v5: Changes after Simon's remarks [3]
- Remove unnecessary empty lines.
- Replace "breakpoint uses" with "breakpoints use" in a comment.
- "return condition;" i.s.o. "if (condition) return true; else return false;"

[1] Tom's remarks
https://sourceware.org/pipermail/gdb-patches/2020-April/167887.html

[2] Simon's remarks on v2
https://sourceware.org/pipermail/gdb-patches/2020-May/168513.html

[3] Simon's remarks on v4
https://sourceware.org/pipermail/gdb-patches/2020-August/170994.html

gdb/ChangeLog:

2020-08-25  Anton Kolesov  <anton.kolesov@synopsys.com>

	* configure.tgt: ARC support for GNU/Linux.
	* Makefile.in (ALL_TARGET_OBJS): Likewise.
	* arc-linux-tdep.c: New file.
	* arc-tdep.h (ARC_STATUS32_L_MASK, ARC_STATUS32_DE_MASK): Declare.
	* arc-tdep.c (arc_write_pc): Use it.
2020-08-25 17:31:29 +02:00

802 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
# 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* | \
*-*-solaris2.[01] | *-*-solaris2.[2-9]* | *-*-solaris2.10* | \
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
x86_tobjs="x86-tdep.o"
i386_tobjs="i386-tdep.o arch/i386.o i387-tdep.o ${x86_tobjs}"
amd64_tobjs="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 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";;
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"
;;
riscv*-*-*)
cpu_obs="riscv-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="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"
;;
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"
;;
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-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_target_obs="arm-pikeos-tdep.o"
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
;;
bfin-*-*)
# Target: Blackfin processor
gdb_target_obs="bfin-tdep.o"
gdb_sim=../sim/bfin/libsim.a
;;
bpf-*-*)
# Target: eBPF
gdb_target_obs="bpf-tdep.o"
gdb_sim=../sim/bpf/libsim.a
;;
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"
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"
;;
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
;;
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-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"
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
;;
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"
;;
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"
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
;;
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*-*-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"
gdb_sim=../sim/or1k/libsim.a
;;
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 \
glibc-tdep.o symfile-mem.o linux-tdep.o \
ravenscar-thread.o ppc-ravenscar-thread.o \
linux-record.o \
arch/ppc-linux-common.o"
gdb_sim=../sim/ppc/libsim.a
;;
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"
;;
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 glibc-tdep.o \
linux-tdep.o solib-svr4.o symfile-mem.o linux-record.o"
;;
riscv*-*-*)
# Target: RISC-V architecture
gdb_target_obs=""
;;
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"
;;
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"
gdb_sim=../sim/sh/libsim.a
;;
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 sh-nbsd-tdep.o"
;;
sh*)
# Target: Embedded Renesas Super-H processor
gdb_target_obs="sh-tdep.o"
gdb_sim=../sim/sh/libsim.a
;;
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$enable_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-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"
;;
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"
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"
;;
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-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*)
# Target: GNU/Linux Xtensa
gdb_target_obs="xtensa-linux-tdep.o symfile-mem.o linux-tdep.o"
;;
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*) gdb_osabi=GDB_OSABI_WINDOWS ;;
*-*-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