This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.

diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c
index 8c2d3943ac..839d5ff142 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:

-- 
Alan Modra
Australia Development Lab, IBM


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]