This is the mail archive of the
binutils-cvs@sourceware.org
mailing list for the binutils project.
[binutils-gdb/binutils-2_25-branch] ppc64_elf_edit_opd revamp, take 2
- From: Alan Modra <amodra at sourceware dot org>
- To: bfd-cvs at sourceware dot org
- Date: 11 Feb 2015 12:47:43 -0000
- Subject: [binutils-gdb/binutils-2_25-branch] ppc64_elf_edit_opd revamp, take 2
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=c35294d36256e7ae759f4198598de7e76d9127c0
commit c35294d36256e7ae759f4198598de7e76d9127c0
Author: Alan Modra <amodra@gmail.com>
Date: Tue Dec 9 14:31:01 2014 +1030
ppc64_elf_edit_opd revamp, take 2
Now that ld -r relocs are sorted by the pr17666 fix, there isn't so
much need to sort incoming relocs.
* elf64-ppc.c (sort_r_offset): Delete.
(ppc64_elf_edit_opd): Don't sort input relocs.
Diff:
---
bfd/ChangeLog | 4 ++++
bfd/elf64-ppc.c | 16 ----------------
2 files changed, 4 insertions(+), 16 deletions(-)
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 76e082b..9c07abe 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,6 +1,10 @@
2015-02-11 Alan Modra <amodra@gmail.com>
Apply from master.
+ 2014-12-09 Alan Modra <amodra@gmail.com>
+ * elf64-ppc.c (sort_r_offset): Delete.
+ (ppc64_elf_edit_opd): Don't sort input relocs.
+
2014-12-04 Alan Modra <amodra@gmail.com>
PR 17666
* elflink.c: Include bfd_stdint.h.
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 2e9d35a..cb58df1 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -7589,21 +7589,6 @@ dec_dynrel_count (bfd_vma r_info,
return FALSE;
}
-/* qsort comparison function sorting relocs by r_offset. */
-
-static int
-sort_r_offset (const void *p, const void *q)
-{
- const Elf_Internal_Rela *a = (const Elf_Internal_Rela *) p;
- const Elf_Internal_Rela *b = (const Elf_Internal_Rela *) q;
-
- if (a->r_offset < b->r_offset)
- return -1;
- else if (a->r_offset > b->r_offset)
- return 1;
- return 0;
-}
-
/* Remove unused Official Procedure Descriptor entries. Currently we
only remove those associated with functions in discarded link-once
sections, or weakly defined functions that have been overridden. It
@@ -7657,7 +7642,6 @@ ppc64_elf_edit_opd (struct bfd_link_info *info)
info->keep_memory);
if (relstart == NULL)
return FALSE;
- qsort (relstart, sec->reloc_count, sizeof (*relstart), sort_r_offset);
/* First run through the relocs to check they are sane, and to
determine whether we need to edit this opd section. */