diff options
-rw-r--r-- | binutils/ChangeLog | 7 | ||||
-rw-r--r-- | binutils/readelf.c | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 09436cc..fd56834 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,10 @@ +2018-10-10 Helge Deller <deller@gmx.de> + Alan Modra <amodra@gmail.com> + + * readelf.c (hppa_process_unwind): Don't use eh_addr_size to + calculate number of entries. + (slurp_hppa_unwind_table): Don't use eh_addr_size here either. + 2018-10-10 Alan Modra <amodra@gmail.com> * objdump.c (dump_dwarf): Set s12z eh_addr_size to 4. diff --git a/binutils/readelf.c b/binutils/readelf.c index 2748664..41f55ee 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -8065,7 +8065,7 @@ slurp_hppa_unwind_table (Filedata * filedata, i = rp->r_offset / unw_ent_size; - switch ((rp->r_offset % unw_ent_size) / eh_addr_size) + switch ((rp->r_offset % unw_ent_size) / 4) { case 0: aux->table[i].start.section = sym->st_shndx; @@ -8133,7 +8133,7 @@ hppa_process_unwind (Filedata * filedata) { if (streq (SECTION_NAME (sec), ".PARISC.unwind")) { - unsigned long num_unwind = sec->sh_size / (2 * eh_addr_size + 8); + unsigned long num_unwind = sec->sh_size / 16; printf (ngettext ("\nUnwind section '%s' at offset 0x%lx " "contains %lu entry:\n", |