Fix dwarf2read.c related crash in which section index was not being

initialized properly.
This commit is contained in:
Kevin Buettner 2000-12-04 15:55:09 +00:00
parent 6227bc851d
commit bbeae04739
2 changed files with 11 additions and 23 deletions

View File

@ -1,3 +1,10 @@
2000-12-04 Kevin Buettner <kevinb@redhat.com>
* elfread.c (record_minimal_symbol_and_info): Don't guess
at the section index; instead just always use the bfd index.
(elf_symtab_read): Handle weak symbols appearing in data
sections.
Mon Dec 4 14:36:39 2000 Andrew Cagney <cagney@b1.cygnus.com>
* gdbarch.sh (STAB_REG_TO_REGNUM, ECOFF_REG_TO_REGNUM,

View File

@ -171,32 +171,13 @@ record_minimal_symbol_and_info (char *name, CORE_ADDR address,
enum minimal_symbol_type ms_type, char *info, /* FIXME, is this really char *? */
asection *bfd_section, struct objfile *objfile)
{
int section;
/* Guess the section from the type. This is likely to be wrong in
some cases. */
switch (ms_type)
{
case mst_text:
case mst_file_text:
section = bfd_section->index;
#ifdef SMASH_TEXT_ADDRESS
if (ms_type == mst_text || ms_type == mst_file_text)
SMASH_TEXT_ADDRESS (address);
#endif
break;
case mst_data:
case mst_file_data:
case mst_bss:
case mst_file_bss:
section = bfd_section->index;
break;
default:
section = -1;
break;
}
return prim_record_minimal_symbol_and_info
(name, address, ms_type, info, section, bfd_section, objfile);
(name, address, ms_type, info, bfd_section->index, bfd_section, objfile);
}
/*
@ -423,7 +404,7 @@ elf_symtab_read (struct objfile *objfile, int dynamic)
}
else if (sym->section->flags & SEC_ALLOC)
{
if (sym->flags & BSF_GLOBAL)
if (sym->flags & (BSF_GLOBAL | BSF_WEAK))
{
if (sym->section->flags & SEC_LOAD)
{