This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH] sparc: Fix objdump --dynamic-reloc for SPARC 64-bit to show symbol names.
- From: Sheldon Lobo <sheldon dot lobo at oracle dot com>
- To: binutils at sourceware dot org
- Cc: Sheldon Lobo <sheldon dot lobo at oracle dot com>
- Date: Mon, 6 Feb 2017 22:08:25 -0500
- Subject: [PATCH] sparc: Fix objdump --dynamic-reloc for SPARC 64-bit to show symbol names.
- Authentication-results: sourceware.org; auth=none
Fixes ld/testsuite/ld-elf/shared.exp "Build libpr16496b.so".
The root cause is in bfd/elf64-sparc.c, elf64_sparc_slurp_one_reloc_table(),
bfd_get_symcount() was used for dynamic mode as well. The fix is to use
bfd_get_dynamic_symcount().
This has been tested with sparc64-linux-gnu, and it does not introduce any
regressions.
bfd/ChangeLog:
2017-02-06 Sheldon Lobo <sheldon.lobo@oracle.com>
Fix sparc64 dynamic relocation processing to use the dynamic
symbol count.
* elf64-sparc.c (elf64_sparc_slurp_one_reloc_table): Use 'dynamic'
to determine if bfd_get_symcount() or bfd_get_dynamic_symcount()
should be used.
---
bfd/elf64-sparc.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/bfd/elf64-sparc.c b/bfd/elf64-sparc.c
index ac66ab1..0190bd2 100644
--- a/bfd/elf64-sparc.c
+++ b/bfd/elf64-sparc.c
@@ -99,7 +99,9 @@ elf64_sparc_slurp_one_reloc_table (bfd *abfd, asection *asect,
if (ELF64_R_SYM (rela.r_info) == STN_UNDEF
/* PR 17512: file: 996185f8. */
- || ELF64_R_SYM (rela.r_info) > bfd_get_symcount (abfd))
+ || (!dynamic && ELF64_R_SYM(rela.r_info) > bfd_get_symcount(abfd))
+ || (dynamic
+ && ELF64_R_SYM(rela.r_info) > bfd_get_dynamic_symcount(abfd)))
relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
else
{
--
1.7.1