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>
|
2001-07-11 Andrew Cagney <ac131313@redhat.com>
|
||||||
|
|
||||||
* configure.tgt: Mark d10v as pure multi-arch.
|
* configure.tgt: Mark d10v as pure multi-arch.
|
||||||
|
|
|
@ -5,6 +5,6 @@ XDEPFILES=
|
||||||
|
|
||||||
NAT_FILE= nm-linux.h
|
NAT_FILE= nm-linux.h
|
||||||
NATDEPFILES= infptrace.o inftarg.o fork-child.o \
|
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
|
GDBSERVER_DEPFILES= low-linux.o
|
||||||
|
|
|
@ -66,9 +66,9 @@ m68k_linux_register_u_addr (int blockend, int regnum)
|
||||||
return (blockend + 4 * regmap[regnum]);
|
return (blockend + 4 * regmap[regnum]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Given a pointer to a general register set in /proc format (gregset_t *),
|
/* Given a pointer to a general register set in /proc format
|
||||||
unpack the register contents and supply them as gdb's idea of the current
|
(elf_gregset_t *), unpack the register contents and supply
|
||||||
register values. */
|
them as gdb's idea of the current register values. */
|
||||||
|
|
||||||
|
|
||||||
/* Note both m68k-tdep.c and m68klinux-nat.c contain definitions
|
/* 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"
|
#include "gregset.h"
|
||||||
|
|
||||||
void
|
void
|
||||||
supply_gregset (gregset_t *gregsetp)
|
supply_gregset (elf_gregset_t *gregsetp)
|
||||||
{
|
{
|
||||||
int regi;
|
int regi;
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ supply_gregset (gregset_t *gregsetp)
|
||||||
idea of the current floating point register values. */
|
idea of the current floating point register values. */
|
||||||
|
|
||||||
void
|
void
|
||||||
supply_fpregset (fpregset_t *fpregsetp)
|
supply_fpregset (elf_fpregset_t *fpregsetp)
|
||||||
{
|
{
|
||||||
int regi;
|
int regi;
|
||||||
|
|
||||||
|
@ -112,6 +112,62 @@ supply_fpregset (fpregset_t *fpregsetp)
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#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
|
int
|
||||||
|
@ -153,3 +209,21 @@ in_sigtramp (CORE_ADDR pc)
|
||||||
|
|
||||||
return 0;
|
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