In new_symbol(), relocate symbol address by base address of the section

it is in instead of using the base address of the .text section.
This commit is contained in:
Kevin Buettner 2000-11-03 22:38:38 +00:00
parent 4930751aae
commit a275699e3a
2 changed files with 14 additions and 2 deletions

View file

@ -1,3 +1,9 @@
2000-11-03 Kevin Buettner <kevinb@redhat.com>
* dwarf2read.c (new_symbol): Relocate address of symbol by the
base address of the section it is in rather than always using
the base address of the .text section.
2000-11-01 J.T. Conklin <jtc@redback.com>
* TODO: Note abstraction layer violation where "ocd reset" command

View file

@ -4185,7 +4185,10 @@ new_symbol (struct die_info *die, struct type *type, struct objfile *objfile,
the variable is referenced. */
if (SYMBOL_VALUE_ADDRESS (sym))
{
SYMBOL_VALUE_ADDRESS (sym) += baseaddr;
fixup_symbol_section (sym, objfile);
SYMBOL_VALUE_ADDRESS (sym) +=
ANOFFSET (objfile->section_offsets,
SYMBOL_SECTION (sym));
SYMBOL_CLASS (sym) = LOC_STATIC;
}
else
@ -4215,8 +4218,11 @@ new_symbol (struct die_info *die, struct type *type, struct objfile *objfile,
}
else
{
fixup_symbol_section (sym, objfile);
SYMBOL_VALUE_ADDRESS (sym) =
addr + ANOFFSET (objfile->section_offsets,
SYMBOL_SECTION (sym));
SYMBOL_CLASS (sym) = LOC_STATIC;
SYMBOL_VALUE_ADDRESS (sym) = addr + baseaddr;
}
}
}