* elfread.c (record_minimal_symbol_and_info): Guess the section to
use from the type. * objfiles.c: Include gdb-stabs.h for SECT_* macros. (objfile_relocate): Relocate textlow and texthigh in psymtabs. Relocate partial symbols. Check that minimal SYMBOL_SECTION is nonnegative before using it. * symtab.h: Adjust section field comment.
This commit is contained in:
parent
89709d42cb
commit
610a7e7458
3 changed files with 70 additions and 2 deletions
|
@ -26,6 +26,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|||
#include "symtab.h"
|
||||
#include "symfile.h"
|
||||
#include "objfiles.h"
|
||||
#include "gdb-stabs.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
@ -473,10 +474,36 @@ objfile_relocate (objfile, new_offsets)
|
|||
}
|
||||
}
|
||||
|
||||
{
|
||||
struct partial_symtab *p;
|
||||
|
||||
ALL_OBJFILE_PSYMTABS (objfile, p)
|
||||
{
|
||||
p->textlow += ANOFFSET (delta, SECT_OFF_TEXT);
|
||||
p->texthigh += ANOFFSET (delta, SECT_OFF_TEXT);
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
struct partial_symbol *psym;
|
||||
|
||||
for (psym = objfile->global_psymbols.list;
|
||||
psym < objfile->global_psymbols.next;
|
||||
psym++)
|
||||
if (SYMBOL_SECTION (psym) >= 0)
|
||||
SYMBOL_VALUE_ADDRESS (psym) += ANOFFSET (delta, SYMBOL_SECTION (psym));
|
||||
for (psym = objfile->static_psymbols.list;
|
||||
psym < objfile->static_psymbols.next;
|
||||
psym++)
|
||||
if (SYMBOL_SECTION (psym) >= 0)
|
||||
SYMBOL_VALUE_ADDRESS (psym) += ANOFFSET (delta, SYMBOL_SECTION (psym));
|
||||
}
|
||||
|
||||
{
|
||||
struct minimal_symbol *msym;
|
||||
ALL_OBJFILE_MSYMBOLS (objfile, msym)
|
||||
SYMBOL_VALUE_ADDRESS (msym) += ANOFFSET (delta, SYMBOL_SECTION (msym));
|
||||
if (SYMBOL_SECTION (msym) >= 0)
|
||||
SYMBOL_VALUE_ADDRESS (msym) += ANOFFSET (delta, SYMBOL_SECTION (msym));
|
||||
}
|
||||
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue