diff options
Diffstat (limited to 'gdb/elfread.c')
-rw-r--r-- | gdb/elfread.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/gdb/elfread.c b/gdb/elfread.c index 107bdaf..524df4a 100644 --- a/gdb/elfread.c +++ b/gdb/elfread.c @@ -389,6 +389,15 @@ elf_symtab_read (abfd, addr, objfile, dynamic) default: ms_type = mst_abs; } + + /* If it is an Irix dynamic symbol, skip section name + symbols, relocate all others. */ + if (ms_type != mst_abs) + { + if (sym->name[0] == '.') + continue; + symaddr += addr; + } } else if (sym -> section -> flags & SEC_CODE) { @@ -603,7 +612,7 @@ elf_symfile_read (objfile, section_offsets, mainline) special ELF sections. We first have to find them... */ bfd_map_over_sections (abfd, elf_locate_sections, (PTR) &ei); - if (dwarf2_has_info (abfd) && !offset) + if (dwarf2_has_info (abfd)) { /* DWARF 2 sections */ dwarf2_build_psymtabs (objfile, section_offsets, mainline); |