Minor fix for R_PPC_VLE_ADDR20

It is incorrect to "continue" in the ppc_elf_relocate_section reloc
processing loop except when editing or deleting relocs.  The normal
loop processing arranges to write the relocs if shuffling them over a
deleted entry.  Deleting only happens for debug sections currently and
those sections won't contain R_PPC_VLE_ADDR20 relocs, so this patch
doesn't fix a bug that would trigger with any normal object file.

	* elf32-ppc.c (ppc_elf_relocate_section): After applying
	R_PPC_VLE_ADDR20, goto copy_reloc.
This commit is contained in:
Alan Modra 2020-02-04 21:34:45 +10:30
parent e8b791227f
commit 24872cb302
2 changed files with 6 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2020-02-04 Alan Modra <amodra@gmail.com>
* elf32-ppc.c (ppc_elf_relocate_section): After applying
R_PPC_VLE_ADDR20, goto copy_reloc.
2020-02-02 H.J. Lu <hongjiu.lu@intel.com>
* bfd-in2.h: Regenerated.

View File

@ -8780,7 +8780,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
case R_PPC_VLE_ADDR20:
ppc_elf_vle_split20 (output_bfd, contents + rel->r_offset, relocation);
continue;
goto copy_reloc;
/* Relocate against the beginning of the section. */
case R_PPC_SECTOFF: