* elfxx-mips.c (mips_elf_create_dynamic_relocation): Fix handling

of relocations whose offset is -2.
This commit is contained in:
Richard Sandiford 2003-07-09 11:52:52 +00:00
parent fdd0740558
commit 0d591ff7fb
2 changed files with 15 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2003-07-09 Richard Sandiford <rsandifo@redhat.com>
* elfxx-mips.c (mips_elf_create_dynamic_relocation): Fix handling
of relocations whose offset is -2.
2003-07-09 Richard Sandiford <rsandifo@redhat.com>
* bfd/elfxx-mips.c (mips_elf_create_dynamic_relocation): Treat

View File

@ -3875,9 +3875,17 @@ mips_elf_create_dynamic_relocation (output_bfd, info, rel, h, sec,
}
#endif
if (outrel[0].r_offset == (bfd_vma) -1
|| outrel[0].r_offset == (bfd_vma) -2)
if (outrel[0].r_offset == (bfd_vma) -1)
/* The relocation field has been deleted. */
skip = TRUE;
else if (outrel[0].r_offset == (bfd_vma) -2)
{
/* The relocation field has been converted into a relative value of
some sort. Functions like _bfd_elf_write_section_eh_frame expect
the field to be fully relocated, so add in the symbol's value. */
skip = TRUE;
*addendp += symbol;
}
/* If we've decided to skip this relocation, just output an empty
record. Note that R_MIPS_NONE == 0, so that this call to memset