binutils: remove sparc64/mips64 workaround in objcopy build notes merge code
authorJose E. Marchesi <jose.marchesi@oracle.com>
Sat, 20 May 2017 06:45:29 +0000 (23:45 -0700)
committerJose E. Marchesi <jose.marchesi@oracle.com>
Sat, 20 May 2017 06:45:29 +0000 (23:45 -0700)
This patch removes a workaround recently installed in objcopy that
avoided removing duplicated notes in targets for which the number of
internal relocations may be bigger than the number of external
relocations.  With the recent fixes in sparc64 and mips64, this
workaround is no longer necessary.

2017-05-19  Jose E. Marchesi  <jose.marchesi@oracle.com>

* objcopy.c (merge_gnu_build_notes): Remove workaround that
prevented deleting relocations in duplicated notes in mips64 and
sparc.

binutils/ChangeLog
binutils/objcopy.c

index 59e3bb3a19353f7de99ceb43b69b056d72459cc3..60a199a5dbe882f043f510eb5db6721367d5ec05 100644 (file)
@@ -1,3 +1,9 @@
+2017-05-19  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+       * objcopy.c (merge_gnu_build_notes): Remove workaround that
+       prevented deleting relocations in duplicated notes in mips64 and
+       sparc.
+
 2017-05-19  Maciej W. Rozycki  <macro@imgtec.com>
 
        * testsuite/binutils-all/mips/mips-note-2.d: New test.
index ccb5e12798e9ed124c51f9702ccb492655f0d2b7..42c7775234dd70a84a959686769a6e39f8f5c30c 100644 (file)
@@ -2137,13 +2137,6 @@ merge_gnu_build_notes (bfd * abfd, asection * sec, bfd_size_type size, bfd_byte
            relcount = 0;
        }
 
-      /* A few targets (eg MIPS, SPARC) create multiple internal relocs to
-        represent a single external reloc.  Unfortunately the current BFD
-        API does not handle deleting relocs in such situations very well
-        and so it is unsafe to proceed.  */
-      if ((unsigned long) relcount > sec->reloc_count)
-       goto done;
-
       /* Eliminate the duplicates.  */
       new = new_contents = xmalloc (size);
       for (pnote = pnotes, old = contents;