• R/O
  • HTTP
  • SSH
  • HTTPS

提交

标签
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

GNU Binutils with patches for OS216


Commit MetaInfo

修订版3d044c0c78c11968b4fe3c5c019523e3177b1710 (tree)
时间2017-02-07 23:05:59
作者Sheldon Lobo <sheldon.lobo@orac...>
CommiterJose E. Marchesi

Log Message

bfd: Fix objdump --dynamic-reloc for SPARC 64-bit to show symbol names.

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.

更改概述

差异

--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
1+2017-02-06 Sheldon Lobo <sheldon.lobo@oracle.com>
2+
3+ Fix sparc64 dynamic relocation processing to use the dynamic
4+ symbol count.
5+ * elf64-sparc.c (elf64_sparc_slurp_one_reloc_table): Use 'dynamic'
6+ to determine if bfd_get_symcount() or bfd_get_dynamic_symcount()
7+ should be used.
8+
19 2017-02-03 Nick Clifton <nickc@redhat.com>
210
311 PR 21096
--- a/bfd/elf64-sparc.c
+++ b/bfd/elf64-sparc.c
@@ -99,7 +99,9 @@ elf64_sparc_slurp_one_reloc_table (bfd *abfd, asection *asect,
9999
100100 if (ELF64_R_SYM (rela.r_info) == STN_UNDEF
101101 /* PR 17512: file: 996185f8. */
102- || ELF64_R_SYM (rela.r_info) > bfd_get_symcount (abfd))
102+ || (!dynamic && ELF64_R_SYM(rela.r_info) > bfd_get_symcount(abfd))
103+ || (dynamic
104+ && ELF64_R_SYM(rela.r_info) > bfd_get_dynamic_symcount(abfd)))
103105 relent->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
104106 else
105107 {