* readelf.c (display_debug_info): Ignore empty .rela.debug_info
sections. Allow relocations against the absolute symbol. Don't use the value in compunit.cu_abbrev_offset if we found a RELA relocation.
This commit is contained in:
parent
f74fa174bf
commit
09fc3b0230
|
@ -1,3 +1,10 @@
|
||||||
|
2002-10-09 Daniel Jacobowitz <drow@mvista.com>
|
||||||
|
|
||||||
|
* readelf.c (display_debug_info): Ignore empty .rela.debug_info
|
||||||
|
sections. Allow relocations against the absolute symbol. Don't
|
||||||
|
use the value in compunit.cu_abbrev_offset if we found a RELA
|
||||||
|
relocation.
|
||||||
|
|
||||||
2002-10-07 Gordon Chaffee <chaffee@netvmg.com>
|
2002-10-07 Gordon Chaffee <chaffee@netvmg.com>
|
||||||
|
|
||||||
* addr2line.c (slurp_symtab): Read in dynamic symbols if no
|
* addr2line.c (slurp_symtab): Read in dynamic symbols if no
|
||||||
|
|
|
@ -7978,7 +7978,8 @@ display_debug_info (section, start, file)
|
||||||
Elf_Internal_Sym *sym;
|
Elf_Internal_Sym *sym;
|
||||||
|
|
||||||
if (relsec->sh_type != SHT_RELA
|
if (relsec->sh_type != SHT_RELA
|
||||||
|| SECTION_HEADER (relsec->sh_info) != section)
|
|| SECTION_HEADER (relsec->sh_info) != section
|
||||||
|
|| relsec->sh_size == 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!slurp_rela_relocs (file, relsec->sh_offset, relsec->sh_size,
|
if (!slurp_rela_relocs (file, relsec->sh_offset, relsec->sh_size,
|
||||||
|
@ -7999,7 +8000,8 @@ display_debug_info (section, start, file)
|
||||||
{
|
{
|
||||||
sym = symtab + ELF32_R_SYM (rp->r_info);
|
sym = symtab + ELF32_R_SYM (rp->r_info);
|
||||||
|
|
||||||
if (ELF32_ST_TYPE (sym->st_info) != STT_SECTION)
|
if (ELF32_R_SYM (rp->r_info) != 0
|
||||||
|
&& ELF32_ST_TYPE (sym->st_info) != STT_SECTION)
|
||||||
{
|
{
|
||||||
warn (_("Skipping unexpected symbol type %u\n"),
|
warn (_("Skipping unexpected symbol type %u\n"),
|
||||||
ELF32_ST_TYPE (sym->st_info));
|
ELF32_ST_TYPE (sym->st_info));
|
||||||
|
@ -8010,7 +8012,8 @@ display_debug_info (section, start, file)
|
||||||
{
|
{
|
||||||
sym = symtab + ELF64_R_SYM (rp->r_info);
|
sym = symtab + ELF64_R_SYM (rp->r_info);
|
||||||
|
|
||||||
if (ELF64_ST_TYPE (sym->st_info) != STT_SECTION)
|
if (ELF64_R_SYM (rp->r_info) != 0
|
||||||
|
&& ELF64_ST_TYPE (sym->st_info) != STT_SECTION)
|
||||||
{
|
{
|
||||||
warn (_("Skipping unexpected symbol type %u\n"),
|
warn (_("Skipping unexpected symbol type %u\n"),
|
||||||
ELF64_ST_TYPE (sym->st_info));
|
ELF64_ST_TYPE (sym->st_info));
|
||||||
|
@ -8018,7 +8021,7 @@ display_debug_info (section, start, file)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
compunit.cu_abbrev_offset += rp->r_addend;
|
compunit.cu_abbrev_offset = rp->r_addend;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue