2001-02-12 Michael Chastain <chastain@redhat.com>
* gdb/somsolib.c (som_solib_add_solib_objfile): Do not use section relocation feature of syms_from_objfile. Do my own section relocation, offsetting each section of the som by either text_addr - text_link_addr or data_start.
This commit is contained in:
parent
7d65bd2d7c
commit
9ca0e47c00
@ -1,3 +1,10 @@
|
|||||||
|
2001-02-12 Michael Chastain <chastain@redhat.com>
|
||||||
|
|
||||||
|
* gdb/somsolib.c (som_solib_add_solib_objfile): Do not use
|
||||||
|
section relocation feature of syms_from_objfile. Do my own
|
||||||
|
section relocation, offsetting each section of the som by
|
||||||
|
either text_addr - text_link_addr or data_start.
|
||||||
|
|
||||||
2001-02-16 Andrew Cagney <ac131313@redhat.com>
|
2001-02-16 Andrew Cagney <ac131313@redhat.com>
|
||||||
|
|
||||||
* TODO (5.1): Move ``Hardware watchpint problems'' out of 5.1.
|
* TODO (5.1): Move ``Hardware watchpint problems'' out of 5.1.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Handle HP SOM shared libraries for GDB, the GNU Debugger.
|
/* Handle HP SOM shared libraries for GDB, the GNU Debugger.
|
||||||
Copyright 1993, 1996, 1999 Free Software Foundation, Inc.
|
Copyright 1993, 1996, 1999, 2001 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of GDB.
|
This file is part of GDB.
|
||||||
|
|
||||||
@ -283,14 +283,30 @@ som_solib_add_solib_objfile (struct so_list *so, char *name, int from_tty,
|
|||||||
CORE_ADDR text_addr)
|
CORE_ADDR text_addr)
|
||||||
{
|
{
|
||||||
obj_private_data_t *obj_private;
|
obj_private_data_t *obj_private;
|
||||||
struct section_addr_info section_addrs;
|
struct obj_section *s;
|
||||||
|
|
||||||
memset (§ion_addrs, 0, sizeof (section_addrs));
|
so->objfile = symbol_file_add (name, from_tty, NULL, 0, OBJF_SHARED);
|
||||||
section_addrs.other[0].name = ".text";
|
|
||||||
section_addrs.other[0].addr = text_addr;
|
|
||||||
so->objfile = symbol_file_add (name, from_tty, §ion_addrs, 0, OBJF_SHARED);
|
|
||||||
so->abfd = so->objfile->obfd;
|
so->abfd = so->objfile->obfd;
|
||||||
|
|
||||||
|
/* syms_from_objfile has bizarre section offset code,
|
||||||
|
so I do my own right here. */
|
||||||
|
for (s = so->objfile->sections; s < so->objfile->sections_end; s++)
|
||||||
|
{
|
||||||
|
flagword aflag = bfd_get_section_flags(so->abfd, s->the_bfd_section);
|
||||||
|
if (aflag & SEC_CODE)
|
||||||
|
{
|
||||||
|
s->addr += so->som_solib.text_addr - so->som_solib.text_link_addr;
|
||||||
|
s->endaddr += so->som_solib.text_addr - so->som_solib.text_link_addr;
|
||||||
|
}
|
||||||
|
else if (aflag & SEC_DATA)
|
||||||
|
{
|
||||||
|
s->addr += so->som_solib.data_start;
|
||||||
|
s->endaddr += so->som_solib.data_start;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
/* Mark this as a shared library and save private data.
|
/* Mark this as a shared library and save private data.
|
||||||
*/
|
*/
|
||||||
so->objfile->flags |= OBJF_SHARED;
|
so->objfile->flags |= OBJF_SHARED;
|
||||||
|
Loading…
Reference in New Issue
Block a user