* readelf.c (debug_apply_rela_addends): Reorder r_info as
necessary for 64-bit MIPS.
This commit is contained in:
parent
470e4bd1c2
commit
a8b683fc5e
2 changed files with 17 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2005-04-04 Maciej W. Rozycki <macro@linux-mips.org>
|
||||||
|
|
||||||
|
* readelf.c (debug_apply_rela_addends): Reorder r_info as
|
||||||
|
necessary for 64-bit MIPS.
|
||||||
|
|
||||||
2005-04-04 Maciej W. Rozycki <macro@linux-mips.org>
|
2005-04-04 Maciej W. Rozycki <macro@linux-mips.org>
|
||||||
|
|
||||||
* doc/binutils.texi (readelf): Remove a duplicate paragraph.
|
* doc/binutils.texi (readelf): Remove a duplicate paragraph.
|
||||||
|
|
|
@ -7395,6 +7395,18 @@ debug_apply_rela_addends (FILE *file,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
/* In MIPS little-endian objects, r_info isn't really a
|
||||||
|
64-bit little-endian value: it has a 32-bit little-endian
|
||||||
|
symbol index followed by four individual byte fields.
|
||||||
|
Reorder INFO accordingly. */
|
||||||
|
if (elf_header.e_machine == EM_MIPS
|
||||||
|
&& elf_header.e_ident[EI_DATA] != ELFDATA2MSB)
|
||||||
|
rp->r_info = (((rp->r_info & 0xffffffff) << 32)
|
||||||
|
| ((rp->r_info >> 56) & 0xff)
|
||||||
|
| ((rp->r_info >> 40) & 0xff00)
|
||||||
|
| ((rp->r_info >> 24) & 0xff0000)
|
||||||
|
| ((rp->r_info >> 8) & 0xff000000));
|
||||||
|
|
||||||
sym = symtab + ELF64_R_SYM (rp->r_info);
|
sym = symtab + ELF64_R_SYM (rp->r_info);
|
||||||
|
|
||||||
if (ELF64_R_SYM (rp->r_info) != 0
|
if (ELF64_R_SYM (rp->r_info) != 0
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue