Blame SOURCES/binutils-2.27-local-dynsym-count.patch

be6651
diff -rup binutils-2.27.orig/bfd/ChangeLog binutils-2.27/bfd/ChangeLog
be6651
--- binutils-2.27.orig/bfd/ChangeLog	2016-08-12 17:14:07.621773233 +0100
be6651
+++ binutils-2.27/bfd/ChangeLog	2016-08-12 17:17:32.408119156 +0100
be6651
@@ -1,3 +1,9 @@
be6651
+2016-08-12  Alan Modra  <amodra@gmail.com>
be6651
+
be6651
+	* elf-bfd.h (struct elf_link_hash_table): Add local_dynsymcount.
be6651
+	* elflink.c (_bfd_elf_link_renumber_dynsyms): Set local_dynsymcount.
be6651
+	(bfd_elf_final_link): Set .dynsym sh_info from local_dynsymcount.
be6651
+
be6651
 2016-08-03  Tristan Gingold  <gingold@adacore.com>
be6651
 
be6651
 	* version.m4: Bump version to 2.27
be6651
Only in binutils-2.27/bfd: ChangeLog.orig
be6651
Only in binutils-2.27/bfd: ChangeLog.rej
be6651
diff -rup binutils-2.27.orig/bfd/elf-bfd.h binutils-2.27/bfd/elf-bfd.h
be6651
--- binutils-2.27.orig/bfd/elf-bfd.h	2016-08-12 17:14:07.630773290 +0100
be6651
+++ binutils-2.27/bfd/elf-bfd.h	2016-08-12 17:16:08.519549845 +0100
be6651
@@ -524,6 +524,7 @@ struct elf_link_hash_table
be6651
   /* The number of symbols found in the link which is intended for the
be6651
      mandatory DT_SYMTAB tag (.dynsym section) in .dynamic section.  */
be6651
   bfd_size_type dynsymcount;
be6651
+  bfd_size_type local_dynsymcount;
be6651
 
be6651
   /* The string table of dynamic symbols, which becomes the .dynstr
be6651
      section.  */
be6651
diff -rup binutils-2.27.orig/bfd/elflink.c binutils-2.27/bfd/elflink.c
be6651
--- binutils-2.27.orig/bfd/elflink.c	2016-08-12 17:14:07.637773334 +0100
be6651
+++ binutils-2.27/bfd/elflink.c	2016-08-12 17:16:08.521549858 +0100
be6651
@@ -903,6 +903,7 @@ _bfd_elf_link_renumber_dynsyms (bfd *out
be6651
       for (p = elf_hash_table (info)->dynlocal; p ; p = p->next)
be6651
 	p->dynindx = ++dynsymcount;
be6651
     }
be6651
+  elf_hash_table (info)->local_dynsymcount = dynsymcount;
be6651
 
be6651
   elf_link_hash_traverse (elf_hash_table (info),
be6651
 			  elf_link_renumber_hash_table_dynsyms,
be6651
@@ -11678,7 +11679,10 @@ bfd_elf_final_link (bfd *abfd, struct bf
be6651
     {
be6651
       Elf_Internal_Sym sym;
be6651
       bfd_byte *dynsym = elf_hash_table (info)->dynsym->contents;
be6651
-      long last_local = 0;
be6651
+
be6651
+      o = elf_hash_table (info)->dynsym->output_section;
be6651
+      elf_section_data (o)->this_hdr.sh_info
be6651
+	= elf_hash_table (info)->local_dynsymcount + 1;
be6651
 
be6651
       /* Write out the section symbols for the output sections.  */
be6651
       if (bfd_link_pic (info)
be6651
@@ -11708,8 +11712,6 @@ bfd_elf_final_link (bfd *abfd, struct bf
be6651
 		return FALSE;
be6651
 	      sym.st_value = s->vma;
be6651
 	      dest = dynsym + dynindx * bed->s->sizeof_sym;
be6651
-	      if (last_local < dynindx)
be6651
-		last_local = dynindx;
be6651
 	      bed->s->swap_symbol_out (abfd, &sym, dest, 0);
be6651
 	    }
be6651
 	}
be6651
@@ -11742,16 +11744,10 @@ bfd_elf_final_link (bfd *abfd, struct bf
be6651
 				  + e->isym.st_value);
be6651
 		}
be6651
 
be6651
-	      if (last_local < e->dynindx)
be6651
-		last_local = e->dynindx;
be6651
-
be6651
 	      dest = dynsym + e->dynindx * bed->s->sizeof_sym;
be6651
 	      bed->s->swap_symbol_out (abfd, &sym, dest, 0);
be6651
 	    }
be6651
 	}
be6651
-
be6651
-      elf_section_data (elf_hash_table (info)->dynsym->output_section)->this_hdr.sh_info =
be6651
-	last_local + 1;
be6651
     }
be6651
 
be6651
   /* We get the global symbols from the hash table.  */
be6651
Only in binutils-2.27/bfd: elflink.c.orig
be6651
diff -rup binutils-2.27.orig/ld/ChangeLog binutils-2.27/ld/ChangeLog
be6651
--- binutils-2.27.orig/ld/ChangeLog	2016-08-12 17:14:08.064776041 +0100
be6651
+++ binutils-2.27/ld/ChangeLog	2016-08-12 17:17:00.166900351 +0100
be6651
@@ -1,3 +1,19 @@
be6651
+2016-08-12  Alan Modra  <amodra@gmail.com>
be6651
+
be6651
+	* testsuite/ld-tic6x/shlib-1.rd: Correct expected .dynsym sh_info.
be6651
+	* testsuite/ld-tic6x/shlib-1b.rd: Likewise.
be6651
+	* testsuite/ld-tic6x/shlib-1r.rd: Likewise.
be6651
+	* testsuite/ld-tic6x/shlib-1rb.rd: Likewise.
be6651
+	* testsuite/ld-tic6x/shlib-app-1.rd: Likewise.
be6651
+	* testsuite/ld-tic6x/shlib-app-1b.rd: Likewise.
be6651
+	* testsuite/ld-tic6x/shlib-app-1r.rd: Likewise.
be6651
+	* testsuite/ld-tic6x/shlib-app-1rb.rd: Likewise.
be6651
+	* testsuite/ld-tic6x/shlib-noindex.rd: Likewise.
be6651
+	* testsuite/ld-tic6x/static-app-1.rd: Likewise.
be6651
+	* testsuite/ld-tic6x/static-app-1b.rd: Likewise.
be6651
+	* testsuite/ld-tic6x/static-app-1r.rd: Likewise.
be6651
+	* testsuite/ld-tic6x/static-app-1rb.rd: Likewise.
be6651
+
be6651
 2016-08-03  Tristan Gingold  <gingold@adacore.com>
be6651
 
be6651
 	* configure: Regenerate.
be6651
Only in binutils-2.27/ld: ChangeLog.orig
be6651
Only in binutils-2.27/ld: ChangeLog.rej
be6651
diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-1b.rd binutils-2.27/ld/testsuite/ld-tic6x/shlib-1b.rd
be6651
--- binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-1b.rd	2016-08-12 17:14:08.200776903 +0100
be6651
+++ binutils-2.27/ld/testsuite/ld-tic6x/shlib-1b.rd	2016-08-12 17:16:08.522549865 +0100
be6651
@@ -4,7 +4,7 @@ Section Headers:
be6651
   \[Nr\] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
be6651
   \[ 0\]                   NULL            00000000 000000 000000 00      0   0  0
be6651
   \[ 1\] \.hash             HASH            00008000 001000 000048 04   A  2   0  4
be6651
-  \[ 2\] \.dynsym           DYNSYM          00008048 001048 0000d0 10   A  3   6  4
be6651
+  \[ 2\] \.dynsym           DYNSYM          00008048 001048 0000d0 10   A  3   7  4
be6651
   \[ 3\] \.dynstr           STRTAB          00008118 001118 000025 00   A  0   0  1
be6651
   \[ 4\] \.rela\.got         RELA            00008140 001140 000024 0c  AI  2  10  4
be6651
   \[ 5\] \.rela\.neardata    RELA            00008164 001164 000018 0c  AI  2  11  4
be6651
diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-1rb.rd binutils-2.27/ld/testsuite/ld-tic6x/shlib-1rb.rd
be6651
--- binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-1rb.rd	2016-08-12 17:14:08.200776903 +0100
be6651
+++ binutils-2.27/ld/testsuite/ld-tic6x/shlib-1rb.rd	2016-08-12 17:16:08.522549865 +0100
be6651
@@ -4,7 +4,7 @@ Section Headers:
be6651
   \[Nr\] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
be6651
   \[ 0\]                   NULL            00000000 000000 000000 00      0   0  0
be6651
   \[ 1\] \.hash             HASH            00008000 001000 000048 04   A  2   0  4
be6651
-  \[ 2\] \.dynsym           DYNSYM          00008048 001048 0000d0 10   A  3   6  4
be6651
+  \[ 2\] \.dynsym           DYNSYM          00008048 001048 0000d0 10   A  3   7  4
be6651
   \[ 3\] \.dynstr           STRTAB          00008118 001118 000025 00   A  0   0  1
be6651
   \[ 4\] \.rela\.got         RELA            00008140 001140 000024 0c  AI  2  10  4
be6651
   \[ 5\] \.rela\.neardata    RELA            00008164 001164 000018 0c  AI  2  11  4
be6651
diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-1.rd binutils-2.27/ld/testsuite/ld-tic6x/shlib-1.rd
be6651
--- binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-1.rd	2016-08-12 17:14:08.200776903 +0100
be6651
+++ binutils-2.27/ld/testsuite/ld-tic6x/shlib-1.rd	2016-08-12 17:16:08.522549865 +0100
be6651
@@ -4,7 +4,7 @@ Section Headers:
be6651
   \[Nr\] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
be6651
   \[ 0\]                   NULL            00000000 000000 000000 00      0   0  0
be6651
   \[ 1\] \.hash             HASH            00008000 001000 000048 04   A  2   0  4
be6651
-  \[ 2\] \.dynsym           DYNSYM          00008048 001048 0000d0 10   A  3   6  4
be6651
+  \[ 2\] \.dynsym           DYNSYM          00008048 001048 0000d0 10   A  3   7  4
be6651
   \[ 3\] \.dynstr           STRTAB          00008118 001118 000025 00   A  0   0  1
be6651
   \[ 4\] \.rela\.got         RELA            00008140 001140 000024 0c  AI  2  10  4
be6651
   \[ 5\] \.rela\.neardata    RELA            00008164 001164 000018 0c  AI  2  11  4
be6651
diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-1r.rd binutils-2.27/ld/testsuite/ld-tic6x/shlib-1r.rd
be6651
--- binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-1r.rd	2016-08-12 17:14:08.200776903 +0100
be6651
+++ binutils-2.27/ld/testsuite/ld-tic6x/shlib-1r.rd	2016-08-12 17:16:08.522549865 +0100
be6651
@@ -4,7 +4,7 @@ Section Headers:
be6651
   \[Nr\] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
be6651
   \[ 0\]                   NULL            00000000 000000 000000 00      0   0  0
be6651
   \[ 1\] \.hash             HASH            00008000 001000 000048 04   A  2   0  4
be6651
-  \[ 2\] \.dynsym           DYNSYM          00008048 001048 0000d0 10   A  3   6  4
be6651
+  \[ 2\] \.dynsym           DYNSYM          00008048 001048 0000d0 10   A  3   7  4
be6651
   \[ 3\] \.dynstr           STRTAB          00008118 001118 000025 00   A  0   0  1
be6651
   \[ 4\] \.rela\.got         RELA            00008140 001140 000024 0c  AI  2  10  4
be6651
   \[ 5\] \.rela\.neardata    RELA            00008164 001164 000018 0c  AI  2  11  4
be6651
diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-app-1b.rd binutils-2.27/ld/testsuite/ld-tic6x/shlib-app-1b.rd
be6651
--- binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-app-1b.rd	2016-08-12 17:14:08.200776903 +0100
be6651
+++ binutils-2.27/ld/testsuite/ld-tic6x/shlib-app-1b.rd	2016-08-12 17:16:08.522549865 +0100
be6651
@@ -4,7 +4,7 @@ Section Headers:
be6651
   \[Nr\] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
be6651
   \[ 0\]                   NULL            00000000 000000 000000 00      0   0  0
be6651
   \[ 1\] \.hash             HASH            00008000 001000 000044 04   A  2   0  4
be6651
-  \[ 2\] \.dynsym           DYNSYM          00008044 001044 0000c0 10   A  3   6  4
be6651
+  \[ 2\] \.dynsym           DYNSYM          00008044 001044 0000c0 10   A  3   7  4
be6651
   \[ 3\] \.dynstr           STRTAB          00008104 001104 000036 00   A  0   0  1
be6651
   \[ 4\] \.rela\.got         RELA            0000813c 00113c 000018 0c  AI  2  11  4
be6651
   \[ 5\] \.rela\.neardata    RELA            00008154 001154 000018 0c  AI  2  12  4
be6651
diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-app-1rb.rd binutils-2.27/ld/testsuite/ld-tic6x/shlib-app-1rb.rd
be6651
--- binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-app-1rb.rd	2016-08-12 17:14:08.201776909 +0100
be6651
+++ binutils-2.27/ld/testsuite/ld-tic6x/shlib-app-1rb.rd	2016-08-12 17:16:08.522549865 +0100
be6651
@@ -4,7 +4,7 @@ Section Headers:
be6651
   \[Nr\] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
be6651
   \[ 0\]                   NULL            00000000 000000 000000 00      0   0  0
be6651
   \[ 1\] \.hash             HASH            00008000 001000 00003c 04   A  2   0  4
be6651
-  \[ 2\] \.dynsym           DYNSYM          0000803c 00103c 0000a0 10   A  3   6  4
be6651
+  \[ 2\] \.dynsym           DYNSYM          0000803c 00103c 0000a0 10   A  3   7  4
be6651
   \[ 3\] \.dynstr           STRTAB          000080dc 0010dc 000031 00   A  0   0  1
be6651
   \[ 4\] \.rela\.got         RELA            00008110 001110 000018 0c  AI  2  10  4
be6651
   \[ 5\] \.rela\.bss         RELA            00008128 001128 00000c 0c  AI  2  12  4
be6651
diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-app-1.rd binutils-2.27/ld/testsuite/ld-tic6x/shlib-app-1.rd
be6651
--- binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-app-1.rd	2016-08-12 17:14:08.200776903 +0100
be6651
+++ binutils-2.27/ld/testsuite/ld-tic6x/shlib-app-1.rd	2016-08-12 17:16:08.522549865 +0100
be6651
@@ -4,7 +4,7 @@ Section Headers:
be6651
   \[Nr\] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
be6651
   \[ 0\]                   NULL            00000000 000000 000000 00      0   0  0
be6651
   \[ 1\] \.hash             HASH            00008000 001000 000044 04   A  2   0  4
be6651
-  \[ 2\] \.dynsym           DYNSYM          00008044 001044 0000c0 10   A  3   6  4
be6651
+  \[ 2\] \.dynsym           DYNSYM          00008044 001044 0000c0 10   A  3   7  4
be6651
   \[ 3\] \.dynstr           STRTAB          00008104 001104 000035 00   A  0   0  1
be6651
   \[ 4\] \.rela\.got         RELA            0000813c 00113c 000018 0c  AI  2  11  4
be6651
   \[ 5\] \.rela\.neardata    RELA            00008154 001154 000018 0c  AI  2  12  4
be6651
diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-app-1r.rd binutils-2.27/ld/testsuite/ld-tic6x/shlib-app-1r.rd
be6651
--- binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-app-1r.rd	2016-08-12 17:14:08.200776903 +0100
be6651
+++ binutils-2.27/ld/testsuite/ld-tic6x/shlib-app-1r.rd	2016-08-12 17:16:08.522549865 +0100
be6651
@@ -4,7 +4,7 @@ Section Headers:
be6651
   \[Nr\] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
be6651
   \[ 0\]                   NULL            00000000 000000 000000 00      0   0  0
be6651
   \[ 1\] \.hash             HASH            00008000 001000 00003c 04   A  2   0  4
be6651
-  \[ 2\] \.dynsym           DYNSYM          0000803c 00103c 0000a0 10   A  3   6  4
be6651
+  \[ 2\] \.dynsym           DYNSYM          0000803c 00103c 0000a0 10   A  3   7  4
be6651
   \[ 3\] \.dynstr           STRTAB          000080dc 0010dc 000030 00   A  0   0  1
be6651
   \[ 4\] \.rela\.got         RELA            0000810c 00110c 000018 0c  AI  2  10  4
be6651
   \[ 5\] \.rela\.bss         RELA            00008124 001124 00000c 0c  AI  2  12  4
be6651
diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-noindex.rd binutils-2.27/ld/testsuite/ld-tic6x/shlib-noindex.rd
be6651
--- binutils-2.27.orig/ld/testsuite/ld-tic6x/shlib-noindex.rd	2016-08-12 17:14:08.201776909 +0100
be6651
+++ binutils-2.27/ld/testsuite/ld-tic6x/shlib-noindex.rd	2016-08-12 17:16:08.522549865 +0100
be6651
@@ -4,7 +4,7 @@ Section Headers:
be6651
   \[Nr\] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
be6651
   \[ 0\]                   NULL            00000000 000000 000000 00      0   0  0
be6651
   \[ 1\] \.hash             HASH            00008000 001000 000048 04   A  2   0  4
be6651
-  \[ 2\] \.dynsym           DYNSYM          00008048 001048 0000d0 10   A  3   6  4
be6651
+  \[ 2\] \.dynsym           DYNSYM          00008048 001048 0000d0 10   A  3   7  4
be6651
   \[ 3\] \.dynstr           STRTAB          00008118 001118 000025 00   A  0   0  1
be6651
   \[ 4\] \.rela\.text        RELA            00008140 001140 00000c 0c  AI  2  10  4
be6651
   \[ 5\] \.rela\.got         RELA            0000814c 00114c 000024 0c  AI  2  11  4
be6651
diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/static-app-1b.rd binutils-2.27/ld/testsuite/ld-tic6x/static-app-1b.rd
be6651
--- binutils-2.27.orig/ld/testsuite/ld-tic6x/static-app-1b.rd	2016-08-12 17:14:08.201776909 +0100
be6651
+++ binutils-2.27/ld/testsuite/ld-tic6x/static-app-1b.rd	2016-08-12 17:16:08.522549865 +0100
be6651
@@ -4,7 +4,7 @@ Section Headers:
be6651
   \[Nr\] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
be6651
   \[ 0\]                   NULL            00000000 000000 000000 00      0   0  0
be6651
   \[ 1\] \.hash             HASH            00008000 001000 00003c 04   A  2   0  4
be6651
-  \[ 2\] \.dynsym           DYNSYM          0000803c 00103c 0000a0 10   A  3   5  4
be6651
+  \[ 2\] \.dynsym           DYNSYM          0000803c 00103c 0000a0 10   A  3   7  4
be6651
   \[ 3\] \.dynstr           STRTAB          000080dc 0010dc 00001d 00   A  0   0  1
be6651
   \[ 4\] \.rela\.got         RELA            000080fc 0010fc 000024 0c  AI  2   8  4
be6651
   \[ 5\] \.rela\.neardata    RELA            00008120 001120 000030 0c  AI  2   9  4
be6651
diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/static-app-1rb.rd binutils-2.27/ld/testsuite/ld-tic6x/static-app-1rb.rd
be6651
--- binutils-2.27.orig/ld/testsuite/ld-tic6x/static-app-1rb.rd	2016-08-12 17:14:08.201776909 +0100
be6651
+++ binutils-2.27/ld/testsuite/ld-tic6x/static-app-1rb.rd	2016-08-12 17:16:08.523549872 +0100
be6651
@@ -4,7 +4,7 @@ Section Headers:
be6651
   \[Nr\] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
be6651
   \[ 0\]                   NULL            00000000 000000 000000 00      0   0  0
be6651
   \[ 1\] \.hash             HASH            00008000 001000 00003c 04   A  2   0  4
be6651
-  \[ 2\] \.dynsym           DYNSYM          0000803c 00103c 0000a0 10   A  3   5  4
be6651
+  \[ 2\] \.dynsym           DYNSYM          0000803c 00103c 0000a0 10   A  3   7  4
be6651
   \[ 3\] \.dynstr           STRTAB          000080dc 0010dc 00001d 00   A  0   0  1
be6651
   \[ 4\] \.rela\.got         RELA            000080fc 0010fc 000024 0c  AI  2   8  4
be6651
   \[ 5\] \.rela\.neardata    RELA            00008120 001120 000018 0c  AI  2   9  4
be6651
diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/static-app-1.rd binutils-2.27/ld/testsuite/ld-tic6x/static-app-1.rd
be6651
--- binutils-2.27.orig/ld/testsuite/ld-tic6x/static-app-1.rd	2016-08-12 17:14:08.201776909 +0100
be6651
+++ binutils-2.27/ld/testsuite/ld-tic6x/static-app-1.rd	2016-08-12 17:16:08.522549865 +0100
be6651
@@ -4,7 +4,7 @@ Section Headers:
be6651
   \[Nr\] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
be6651
   \[ 0\]                   NULL            00000000 000000 000000 00      0   0  0
be6651
   \[ 1\] \.hash             HASH            00008000 001000 00003c 04   A  2   0  4
be6651
-  \[ 2\] \.dynsym           DYNSYM          0000803c 00103c 0000a0 10   A  3   5  4
be6651
+  \[ 2\] \.dynsym           DYNSYM          0000803c 00103c 0000a0 10   A  3   7  4
be6651
   \[ 3\] \.dynstr           STRTAB          000080dc 0010dc 00001d 00   A  0   0  1
be6651
   \[ 4\] \.rela\.got         RELA            000080fc 0010fc 000024 0c  AI  2   8  4
be6651
   \[ 5\] \.rela\.neardata    RELA            00008120 001120 000030 0c  AI  2   9  4
be6651
diff -rup binutils-2.27.orig/ld/testsuite/ld-tic6x/static-app-1r.rd binutils-2.27/ld/testsuite/ld-tic6x/static-app-1r.rd
be6651
--- binutils-2.27.orig/ld/testsuite/ld-tic6x/static-app-1r.rd	2016-08-12 17:14:08.201776909 +0100
be6651
+++ binutils-2.27/ld/testsuite/ld-tic6x/static-app-1r.rd	2016-08-12 17:16:08.523549872 +0100
be6651
@@ -4,7 +4,7 @@ Section Headers:
be6651
   \[Nr\] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
be6651
   \[ 0\]                   NULL            00000000 000000 000000 00      0   0  0
be6651
   \[ 1\] \.hash             HASH            00008000 001000 00003c 04   A  2   0  4
be6651
-  \[ 2\] \.dynsym           DYNSYM          0000803c 00103c 0000a0 10   A  3   5  4
be6651
+  \[ 2\] \.dynsym           DYNSYM          0000803c 00103c 0000a0 10   A  3   7  4
be6651
   \[ 3\] \.dynstr           STRTAB          000080dc 0010dc 00001d 00   A  0   0  1
be6651
   \[ 4\] \.rela\.got         RELA            000080fc 0010fc 000024 0c  AI  2   8  4
be6651
   \[ 5\] \.rela\.neardata    RELA            00008120 001120 000018 0c  AI  2   9  4
be6651
--- binutils-2.27.orig/binutils/readelf.c	2016-08-12 17:14:07.717773841 +0100
be6651
+++ binutils-2.27/binutils/readelf.c	2016-08-12 17:24:25.007897415 +0100
be6651
@@ -11110,6 +11110,11 @@ process_symbol_table (FILE * file)
be6651
 		}
be6651
 
be6651
 	      putchar ('\n');
be6651
+
be6651
+	      if (ELF_ST_BIND (psym->st_info) == STB_LOCAL
be6651
+		  && si >= section->sh_info)
be6651
+		warn (_("local symbol %u found at index >= %s's sh_info value of %u\n"),
be6651
+		      si, printable_section_name (section), section->sh_info);
be6651
 	    }
be6651
 
be6651
 	  free (symtab);