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.
This commit is contained in:
Alan Modra
2014-12-09 14:31:01 +10:30
parent d4d1e336f9
commit 31d999a568
2 changed files with 5 additions and 16 deletions

View File

@ -1,3 +1,8 @@
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-06 Eric Botcazou <ebotcazou@adacore.com>
* config.bfd: Add Visium support.

View File

@ -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. */