diff options
author | Alan Modra <amodra@gmail.com> | 2020-02-04 21:34:45 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2020-02-04 21:56:29 +1030 |
commit | 24872cb30211b650a9360edd2476a6a1dd033cbb (patch) | |
tree | 69bca77da9e86cd47cb524adc21a1ee052132cd8 | |
parent | e8b791227f26871ae0030465f77c14f225135c28 (diff) | |
download | fsf-binutils-gdb-24872cb30211b650a9360edd2476a6a1dd033cbb.zip fsf-binutils-gdb-24872cb30211b650a9360edd2476a6a1dd033cbb.tar.gz fsf-binutils-gdb-24872cb30211b650a9360edd2476a6a1dd033cbb.tar.bz2 |
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.
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf32-ppc.c | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f758f65..ebe9344 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -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. diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c index 8c2d394..839d5ff 100644 --- a/bfd/elf32-ppc.c +++ b/bfd/elf32-ppc.c @@ -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: |