Date: Tue, 20 Jun 2000 16:07:09 +0200 (MET DST)
   From: "Maciej W. Rozycki" <[EMAIL PROTECTED]>

   Hi,

    The generic ELF core handling functions in core-regset.c use gregset_t
   and fpregset_t types to access registers.  Linux systems use elf_gregset_t
   and elf_fpregset_t, though.  They have different sizes and layout.  While
   host-specific files take this into account, core-regset.c does not.  As a
   result it rejects registers from cores complaining of the size of the area
   being incorrect.

That's basically right.  What flavor of Linux are you using?
Linux/x86 doesn't use core-regset.c, so it doesn't suffer from this
braindamage.  There are some Linux variants where the gregset_t and
elf_gregset_t are one and the same type.  Other Linuxen have
maintainers who are still confused by this stuff :-(.

    The following is a small update I successfully use.  I propose it for an
   inclusion.  Alternatively, a new Linux-specific file might be created, but
   that might unnecessarily complicate maintenance -- only type names differ
   but files would have to be kept in sync forever.

Some work has been done on rationalizing the regset mess already.  GDB
now defines a type gdb_gregset_t (and gdb_fpregset_t), which should be
a typedef for elf_gregset_t on Linux.  I think core-regset.c should use
these types instead.

Mark

Reply via email to