From: Alan Modra Date: Tue, 9 Dec 2014 04:01:01 +0000 (+1030) Subject: ppc64_elf_edit_opd revamp, take 2 X-Git-Tag: binutils-2_25_1~250 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c35294d36256e7ae759f4198598de7e76d9127c0;p=thirdparty%2Fbinutils-gdb.git 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 --git a/bfd/ChangeLog b/bfd/ChangeLog index 76e082b9fe3..9c07abedb6c 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,6 +1,10 @@ 2015-02-11 Alan Modra Apply from master. + 2014-12-09 Alan Modra + * elf64-ppc.c (sort_r_offset): Delete. + (ppc64_elf_edit_opd): Don't sort input relocs. + 2014-12-04 Alan Modra PR 17666 * elflink.c: Include bfd_stdint.h. diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index 2e9d35a8868..cb58df18d11 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. */