* elf32-rl78.c (elf32_rl78_relax_delete_bytes): Make sure relocs

are loaded before trying to use them.
This commit is contained in:
DJ Delorie 2013-11-05 22:13:04 -05:00
parent a5b5d5ae56
commit 2bc56d6613
2 changed files with 12 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2013-11-05 DJ Delorie <dj@redhat.com>
* elf32-rl78.c (elf32_rl78_relax_delete_bytes): Make sure relocs
are loaded before trying to use them.
2013-11-05 H.J. Lu <hongjiu.lu@intel.com>
Bernhard Rosenkränzer <bernhard.rosenkranzer@linaro.org>

View File

@ -1481,6 +1481,12 @@ elf32_rl78_relax_delete_bytes (bfd *abfd, asection *sec, bfd_vma addr, int count
toaddr = alignment_rel->r_offset;
irel = elf_section_data (sec)->relocs;
if (irel == NULL)
{
_bfd_elf_link_read_relocs (sec->owner, sec, NULL, NULL, TRUE);
irel = elf_section_data (sec)->relocs;
}
irelend = irel + sec->reloc_count;
/* Actually delete the bytes. */
@ -1496,7 +1502,7 @@ elf32_rl78_relax_delete_bytes (bfd *abfd, asection *sec, bfd_vma addr, int count
memset (contents + toaddr - count, 0x03, count);
/* Adjust all the relocs. */
for (irel = elf_section_data (sec)->relocs; irel < irelend; irel++)
for (; irel && irel < irelend; irel++)
{
/* Get the new reloc address. */
if (irel->r_offset > addr