2000-05-04 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
authorElena Zannoni <ezannoni@kwikemart.cygnus.com>
Fri, 5 May 2000 19:09:27 +0000 (19:09 +0000)
committerElena Zannoni <ezannoni@kwikemart.cygnus.com>
Fri, 5 May 2000 19:09:27 +0000 (19:09 +0000)
         * 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.

gdb/ChangeLog
gdb/elfread.c

index 6ba9787..987431d 100644 (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
index e76d5cd..85b04ec 100644 (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))