Module Name:    src
Committed By:   rin
Date:           Thu Apr 22 01:14:18 UTC 2021

Modified Files:
        src/external/gpl3/binutils.old/dist/bfd: elf32-ppc.c elf64-ppc.c

Log Message:
Apply this fix also for binutils.old.

http://www.nerv.org/netbsd/?q=id:20210422T010948Z.f87d2246188cfedb66a0d5a012c107b6a2b9f395

> 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.7 -r1.8 src/external/gpl3/binutils.old/dist/bfd/elf32-ppc.c
cvs rdiff -u -r1.8 -r1.9 src/external/gpl3/binutils.old/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.old/dist/bfd/elf32-ppc.c
diff -u src/external/gpl3/binutils.old/dist/bfd/elf32-ppc.c:1.7 src/external/gpl3/binutils.old/dist/bfd/elf32-ppc.c:1.8
--- src/external/gpl3/binutils.old/dist/bfd/elf32-ppc.c:1.7	Fri Apr  3 17:51:04 2020
+++ src/external/gpl3/binutils.old/dist/bfd/elf32-ppc.c	Thu Apr 22 01:14:18 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.old/dist/bfd/elf64-ppc.c
diff -u src/external/gpl3/binutils.old/dist/bfd/elf64-ppc.c:1.8 src/external/gpl3/binutils.old/dist/bfd/elf64-ppc.c:1.9
--- src/external/gpl3/binutils.old/dist/bfd/elf64-ppc.c:1.8	Fri Apr  3 17:51:04 2020
+++ src/external/gpl3/binutils.old/dist/bfd/elf64-ppc.c	Thu Apr 22 01:14:18 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