mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-21 18:39:34 +08:00
HPPA64 .PARISC.unwind entries
.PARISC.unwind has 32-bit addresses in both 32-bit ELF and 64-bit ELF. Well, strictly speaking, the 32-bit "start" and "end" fields are segment relative offsets. (The 64-bit ABI says so, while the 32-bit ABI says they are addresses but it appears they are segment relative offsets in practice. Likely the 32-bit ABI lacks an update.) * 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.
This commit is contained in:
@ -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>
|
2018-10-10 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
* objdump.c (dump_dwarf): Set s12z eh_addr_size to 4.
|
* objdump.c (dump_dwarf): Set s12z eh_addr_size to 4.
|
||||||
|
@ -8065,7 +8065,7 @@ slurp_hppa_unwind_table (Filedata * filedata,
|
|||||||
|
|
||||||
i = rp->r_offset / unw_ent_size;
|
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:
|
case 0:
|
||||||
aux->table[i].start.section = sym->st_shndx;
|
aux->table[i].start.section = sym->st_shndx;
|
||||||
@ -8133,7 +8133,7 @@ hppa_process_unwind (Filedata * filedata)
|
|||||||
{
|
{
|
||||||
if (streq (SECTION_NAME (sec), ".PARISC.unwind"))
|
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 "
|
printf (ngettext ("\nUnwind section '%s' at offset 0x%lx "
|
||||||
"contains %lu entry:\n",
|
"contains %lu entry:\n",
|
||||||
|
Reference in New Issue
Block a user