bfd: fix the deletion of relocs in sparc64
authorJose E. Marchesi <jose.marchesi@oracle.com>
Wed, 10 May 2017 16:44:19 +0000 (18:44 +0200)
committerJose E. Marchesi <jose.marchesi@oracle.com>
Wed, 10 May 2017 16:45:30 +0000 (18:45 +0200)
commitdb84b98a160d20f30dbdae3e3405cfb0fa680fbd
tree5c6f66aa19007d253714ce35021c85f2bc36f34d
parent2318686590bd252a47f494554dfc11bc18a3e58b
bfd: fix the deletion of relocs in sparc64

This patch fixes the deletion of relocations in BFD sections in
sparc64 targets.

A specialized `_bfd_set_reloc' function is provided that updates the
internal canon_reloc_count(sec) counter instead of sec->reloc_count.
Additionally, the `write_relocs' callback in elf64-sparc is adapted to
use the canon_reloc_count to traverse `sec->orelocation'.

Tested in sparc64-linux-gnu targets.
Fixes an existing failure in the merge-notes objcopy test.
No regressions.

bfd/ChangeLog:

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

* elf64-sparc.c (elf64_sparc_set_reloc): New function.
(bfd_elf64_set_reloc): Define.
(elf64_sparc_write_relocs): Use `canon_reloc_count'.
bfd/ChangeLog
bfd/elf64-sparc.c