fix m68k-linux build
This commit is contained in:
parent
216246961f
commit
f175af9818
@ -1,3 +1,15 @@
|
||||
2001-07-11 Daniel Jacobowitz <drow@mvista.com>
|
||||
|
||||
From Michael Fedrowitz <michael.fedrowitz@informatik.uni-ulm.de>:
|
||||
|
||||
* config/m68k/linux.mh: Remove core-regset.o.
|
||||
* m68klinux-nat.c: Fix comment.
|
||||
(supply_gregset): Change argument to elf_gregset_t *.
|
||||
(supply_fpregset): Change argument to elf_fpregset_t *.
|
||||
(fetch_core_registers): New function.
|
||||
(linux_elf_core_fns): Define.
|
||||
(_initialize_m68k_linux_nat): New function.
|
||||
|
||||
2001-07-11 Andrew Cagney <ac131313@redhat.com>
|
||||
|
||||
* configure.tgt: Mark d10v as pure multi-arch.
|
||||
|
@ -5,6 +5,6 @@ XDEPFILES=
|
||||
|
||||
NAT_FILE= nm-linux.h
|
||||
NATDEPFILES= infptrace.o inftarg.o fork-child.o \
|
||||
corelow.o core-aout.o core-regset.o m68klinux-nat.o linux-thread.o
|
||||
corelow.o core-aout.o m68klinux-nat.o linux-thread.o
|
||||
|
||||
GDBSERVER_DEPFILES= low-linux.o
|
||||
|
@ -66,9 +66,9 @@ m68k_linux_register_u_addr (int blockend, int regnum)
|
||||
return (blockend + 4 * regmap[regnum]);
|
||||
}
|
||||
|
||||
/* Given a pointer to a general register set in /proc format (gregset_t *),
|
||||
unpack the register contents and supply them as gdb's idea of the current
|
||||
register values. */
|
||||
/* Given a pointer to a general register set in /proc format
|
||||
(elf_gregset_t *), unpack the register contents and supply
|
||||
them as gdb's idea of the current register values. */
|
||||
|
||||
|
||||
/* Note both m68k-tdep.c and m68klinux-nat.c contain definitions
|
||||
@ -85,7 +85,7 @@ m68k_linux_register_u_addr (int blockend, int regnum)
|
||||
#include "gregset.h"
|
||||
|
||||
void
|
||||
supply_gregset (gregset_t *gregsetp)
|
||||
supply_gregset (elf_gregset_t *gregsetp)
|
||||
{
|
||||
int regi;
|
||||
|
||||
@ -100,7 +100,7 @@ supply_gregset (gregset_t *gregsetp)
|
||||
idea of the current floating point register values. */
|
||||
|
||||
void
|
||||
supply_fpregset (fpregset_t *fpregsetp)
|
||||
supply_fpregset (elf_fpregset_t *fpregsetp)
|
||||
{
|
||||
int regi;
|
||||
|
||||
@ -112,6 +112,62 @@ supply_fpregset (fpregset_t *fpregsetp)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/* Interpreting register set info found in core files. */
|
||||
|
||||
/* Provide registers to GDB from a core file.
|
||||
|
||||
(We can't use the generic version of this function in
|
||||
core-regset.c, because we need to use elf_gregset_t instead of
|
||||
gregset_t.)
|
||||
|
||||
CORE_REG_SECT points to an array of bytes, which are the contents
|
||||
of a `note' from a core file which BFD thinks might contain
|
||||
register contents. CORE_REG_SIZE is its size.
|
||||
|
||||
WHICH says which register set corelow suspects this is:
|
||||
0 --- the general-purpose register set, in elf_gregset_t format
|
||||
2 --- the floating-point register set, in elf_fpregset_t format
|
||||
|
||||
REG_ADDR isn't used on Linux. */
|
||||
|
||||
static void
|
||||
fetch_core_registers (char *core_reg_sect, unsigned core_reg_size,
|
||||
int which, CORE_ADDR reg_addr)
|
||||
{
|
||||
elf_gregset_t gregset;
|
||||
elf_fpregset_t fpregset;
|
||||
|
||||
switch (which)
|
||||
{
|
||||
case 0:
|
||||
if (core_reg_size != sizeof (gregset))
|
||||
warning ("Wrong size gregset in core file.");
|
||||
else
|
||||
{
|
||||
memcpy (&gregset, core_reg_sect, sizeof (gregset));
|
||||
supply_gregset (&gregset);
|
||||
}
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if (core_reg_size != sizeof (fpregset))
|
||||
warning ("Wrong size fpregset in core file.");
|
||||
else
|
||||
{
|
||||
memcpy (&fpregset, core_reg_sect, sizeof (fpregset));
|
||||
supply_fpregset (&fpregset);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
/* We've covered all the kinds of registers we know about here,
|
||||
so this must be something we wouldn't know what to do with
|
||||
anyway. Just ignore it. */
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
@ -153,3 +209,21 @@ in_sigtramp (CORE_ADDR pc)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* Register that we are able to handle Linux ELF core file formats. */
|
||||
|
||||
static struct core_fns linux_elf_core_fns =
|
||||
{
|
||||
bfd_target_elf_flavour, /* core_flavour */
|
||||
default_check_format, /* check_format */
|
||||
default_core_sniffer, /* core_sniffer */
|
||||
fetch_core_registers, /* core_read_registers */
|
||||
NULL /* next */
|
||||
};
|
||||
|
||||
void
|
||||
_initialize_m68k_linux_nat ()
|
||||
{
|
||||
add_core_fns (&linux_elf_core_fns);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user