Module Name:    src
Committed By:   martin
Date:           Mon May  3 09:01:44 UTC 2021

Modified Files:
        src/external/gpl3/binutils/dist/bfd [netbsd-9]: elf32-ppc.c elf64-ppc.c

Log Message:
Pull up following revision(s) (requested by rin in ticket #1266):

        external/gpl3/binutils/dist/bfd/elf32-ppc.c: revision 1.16
        external/gpl3/binutils/dist/bfd/elf64-ppc.c: revision 1.16

Fix regression where ld(1) is trapped into infinite loop when
linking binary whose text does not fit within R_PPC_REL24.

Reported upstream as Bug 27755:
https://sourceware.org/bugzilla/show_bug.cgi?id=27755

This problem was introduced to binutils-2-31-1 for our tree.
netbsd-9 is affected, while netbsd-8 is not.


To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.14.2.1 \
    src/external/gpl3/binutils/dist/bfd/elf32-ppc.c \
    src/external/gpl3/binutils/dist/bfd/elf64-ppc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/gpl3/binutils/dist/bfd/elf32-ppc.c
diff -u src/external/gpl3/binutils/dist/bfd/elf32-ppc.c:1.14 src/external/gpl3/binutils/dist/bfd/elf32-ppc.c:1.14.2.1
--- src/external/gpl3/binutils/dist/bfd/elf32-ppc.c:1.14	Sun May 12 22:42:33 2019
+++ src/external/gpl3/binutils/dist/bfd/elf32-ppc.c	Mon May  3 09:01:44 2021
@@ -5392,7 +5392,7 @@ ppc_elf_inline_plt (struct bfd_link_info
 	      return FALSE;
 
 	    relend = relstart + sec->reloc_count;
-	    for (rel = relstart; rel < relend; )
+	    for (rel = relstart; rel < relend; rel++)
 	      {
 		enum elf_ppc_reloc_type r_type;
 		unsigned long r_symndx;
Index: src/external/gpl3/binutils/dist/bfd/elf64-ppc.c
diff -u src/external/gpl3/binutils/dist/bfd/elf64-ppc.c:1.14 src/external/gpl3/binutils/dist/bfd/elf64-ppc.c:1.14.2.1
--- src/external/gpl3/binutils/dist/bfd/elf64-ppc.c:1.14	Sun May 12 22:42:33 2019
+++ src/external/gpl3/binutils/dist/bfd/elf64-ppc.c	Mon May  3 09:01:44 2021
@@ -8391,7 +8391,7 @@ ppc64_elf_inline_plt (struct bfd_link_in
 	      return FALSE;
 
 	    relend = relstart + sec->reloc_count;
-	    for (rel = relstart; rel < relend; )
+	    for (rel = relstart; rel < relend; rel++)
 	      {
 		enum elf_ppc64_reloc_type r_type;
 		unsigned long r_symndx;

Reply via email to