* elfread.c (elf_symtab_read): The calculation of 'offset'
         must be done for each symbol, not just once. The index
         used must be the index of the section where 'sym' resides,
         not .text.
This commit is contained in:
Elena Zannoni
2000-05-05 19:09:27 +00:00
parent 6c1a54b22b
commit b8d39351ea
2 changed files with 10 additions and 3 deletions

View File

@@ -1,3 +1,10 @@
2000-05-05 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
* elfread.c (elf_symtab_read): The calculation of 'offset'
must be done for each symbol, not just once. The index
used must be the index of the section where 'sym' resides,
not .text.
2000-05-05 Michael Snyder <msnyder@seadog.cygnus.com>
* procfs.c (many functions): change int cmd; to long cmd;
@@ -19,7 +26,7 @@
and missing return when handling an ordinary signal from the
inferior.
Elena Zannoni <ezannoni@kwikemart.cygnus.com>
2000-05-04 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
* objfiles.h (SECT_OFF_DATA, SECT_OFF_TEXT, SECT_OFF_BSS,
SECT_OFF_RODATA): Define as functions of OBJFILE. Add

View File

@@ -293,8 +293,7 @@ elf_symtab_read (objfile, dynamic)
if (number_of_symbols < 0)
error ("Can't read symbols from %s: %s", bfd_get_filename (objfile->obfd),
bfd_errmsg (bfd_get_error ()));
/* FIXME: Should use section specific offset, not SECT_OFF_TEXT. */
offset = ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
for (i = 0; i < number_of_symbols; i++)
{
sym = symbol_table[i];
@@ -305,6 +304,7 @@ elf_symtab_read (objfile, dynamic)
continue;
}
offset = ANOFFSET (objfile->section_offsets, sym->section->index);
if (dynamic
&& sym->section == &bfd_und_section
&& (sym->flags & BSF_FUNCTION))