summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-readobj
diff options
context:
space:
mode:
authorGeorge Rimar <grimar@accesssoftek.com>2019-02-12 09:50:04 +0000
committerGeorge Rimar <grimar@accesssoftek.com>2019-02-12 09:50:04 +0000
commitb1d6f520059d3b593e08e94d690e7e0b0e740da8 (patch)
treef3c17cf43431cb257ceb2a1bd728ae99ebe8c99a /llvm/tools/llvm-readobj
parentbf6af8fbf00733f040ca31437cec7513ecd930af (diff)
downloadbcm5719-llvm-b1d6f520059d3b593e08e94d690e7e0b0e740da8.tar.gz
bcm5719-llvm-b1d6f520059d3b593e08e94d690e7e0b0e740da8.zip
[llvm-readobj] - Simplify .gnu.version_r dumping a bit.
Current implementation takes "Number of needed versions" from DT_VERNEEDNUM dynamic tag entry. Though it would be a bit simpler to take it from sh_info section header field directly: https://docs.oracle.com/cd/E19683-01/816-1386/chapter6-94076/index.html Differential revision: https://reviews.llvm.org/D58048 llvm-svn: 353814
Diffstat (limited to 'llvm/tools/llvm-readobj')
-rw-r--r--llvm/tools/llvm-readobj/ELFDumper.cpp9
1 files changed, 1 insertions, 8 deletions
diff --git a/llvm/tools/llvm-readobj/ELFDumper.cpp b/llvm/tools/llvm-readobj/ELFDumper.cpp
index 2c9b159575b..ba56e76403f 100644
--- a/llvm/tools/llvm-readobj/ELFDumper.cpp
+++ b/llvm/tools/llvm-readobj/ELFDumper.cpp
@@ -711,19 +711,12 @@ static void printVersionDependencySection(ELFDumper<ELFT> *Dumper,
if (!Sec)
return;
- unsigned VerNeedNum = 0;
- for (const typename ELFO::Elf_Dyn &Dyn : Dumper->dynamic_table()) {
- if (Dyn.d_tag == DT_VERNEEDNUM) {
- VerNeedNum = Dyn.d_un.d_val;
- break;
- }
- }
-
const uint8_t *SecData = (const uint8_t *)Obj->base() + Sec->sh_offset;
const typename ELFO::Elf_Shdr *StrTab =
unwrapOrError(Obj->getSection(Sec->sh_link));
const uint8_t *P = SecData;
+ unsigned VerNeedNum = Sec->sh_info;
for (unsigned I = 0; I < VerNeedNum; ++I) {
const VerNeed *Need = reinterpret_cast<const VerNeed *>(P);
DictScope Entry(W, "Dependency");
OpenPOWER on IntegriCloud