From 31d999a568b8dcd19d79308335f2508685943f1f Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 9 Dec 2014 14:31:01 +1030 Subject: [PATCH] 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. --- bfd/ChangeLog | 5 +++++ bfd/elf64-ppc.c | 16 ---------------- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index ea30751..974b8d8 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2014-12-09 Alan Modra + + * elf64-ppc.c (sort_r_offset): Delete. + (ppc64_elf_edit_opd): Don't sort input relocs. + 2014-12-06 Eric Botcazou * config.bfd: Add Visium support. 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. */ -- 2.7.4