summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/test/ELF/new-dtags.test4
-rw-r--r--lld/test/ELF/shared-ppc64.s2
-rw-r--r--lld/test/ELF/shared.s2
-rw-r--r--llvm/test/tools/llvm-readobj/elf-dynamic-malformed.test8
-rw-r--r--llvm/test/tools/llvm-readobj/elf-dynamic-tags.test8
-rw-r--r--llvm/test/tools/llvm-readobj/rpath.test2
-rw-r--r--llvm/tools/llvm-readobj/ELFDumper.cpp35
7 files changed, 24 insertions, 37 deletions
diff --git a/lld/test/ELF/new-dtags.test b/lld/test/ELF/new-dtags.test
index bceea4bd6d6..3801ef71a1c 100644
--- a/lld/test/ELF/new-dtags.test
+++ b/lld/test/ELF/new-dtags.test
@@ -10,11 +10,11 @@
// RUN: llvm-readobj --dynamic-table %t2 | FileCheck --check-prefix=ENABLE %s
// DISABLE: DynamicSection [
-// DISABLE: 0x000000000000000F RPATH /somepath
+// DISABLE: 0x000000000000000F RPATH Library rpath: [/somepath]
// DISABLE-NOT: RUNPATH
// DISABLE: ]
// ENABLE: DynamicSection [
-// ENABLE: 0x000000000000001D RUNPATH /somepath
+// ENABLE: 0x000000000000001D RUNPATH Library runpath: [/somepath]
// ENABLE-NOT: RPATH
// ENABLE: ]
diff --git a/lld/test/ELF/shared-ppc64.s b/lld/test/ELF/shared-ppc64.s
index 884da809097..f317cedc843 100644
--- a/lld/test/ELF/shared-ppc64.s
+++ b/lld/test/ELF/shared-ppc64.s
@@ -27,7 +27,7 @@
// CHECK: DynamicSection [
// CHECK-NEXT: Tag Type Name/Value
-// CHECK-NEXT: 0x000000000000001D RUNPATH foo:bar
+// CHECK-NEXT: 0x000000000000001D RUNPATH Library runpath: [foo:bar]
// CHECK-NEXT: 0x0000000000000001 NEEDED Shared library: [{{.*}}2.so]
// CHECK-NEXT: 0x0000000000000015 DEBUG 0x0
// CHECK-NEXT: 0x0000000000000007 RELA [[RELADDR]]
diff --git a/lld/test/ELF/shared.s b/lld/test/ELF/shared.s
index 3dcffb3ce48..592c5e3c177 100644
--- a/lld/test/ELF/shared.s
+++ b/lld/test/ELF/shared.s
@@ -250,7 +250,7 @@
// CHECK: DynamicSection [
// CHECK-NEXT: Tag Type Name/Value
-// CHECK-NEXT: 0x0000001D RUNPATH foo:bar
+// CHECK-NEXT: 0x0000001D RUNPATH Library runpath: [foo:bar]
// CHECK-NEXT: 0x00000001 NEEDED Shared library: [{{.*}}2.so]
// CHECK-NEXT: 0x00000015 DEBUG 0x0
// CHECK-NEXT: 0x00000011 REL [[RELADDR]]
diff --git a/llvm/test/tools/llvm-readobj/elf-dynamic-malformed.test b/llvm/test/tools/llvm-readobj/elf-dynamic-malformed.test
index 337fedec5a5..a8302d37d82 100644
--- a/llvm/test/tools/llvm-readobj/elf-dynamic-malformed.test
+++ b/llvm/test/tools/llvm-readobj/elf-dynamic-malformed.test
@@ -79,8 +79,8 @@ ProgramHeaders:
# BAD-STRING-LLVM: 0x000000007FFFFFFD AUXILIARY Auxiliary library: <Invalid offset 0x1>
# BAD-STRING-LLVM: 0x000000007FFFFFFE USED Not needed object: <Invalid offset 0x1>
# BAD-STRING-LLVM: 0x000000000000000E SONAME Library soname: <Invalid offset 0x1>
-# BAD-STRING-LLVM: 0x000000000000000F RPATH <Invalid offset 0x1>
-# BAD-STRING-LLVM: 0x000000000000001D RUNPATH <Invalid offset 0x1>
+# BAD-STRING-LLVM: 0x000000000000000F RPATH Library rpath: <Invalid offset 0x1>
+# BAD-STRING-LLVM: 0x000000000000001D RUNPATH Library runpath: <Invalid offset 0x1>
# BAD-STRING-GNU: 0x000000000000000a (STRSZ) 1 (bytes)
# BAD-STRING-GNU: 0x0000000000000001 (NEEDED) Shared library: <Invalid offset 0x1>
@@ -88,8 +88,8 @@ ProgramHeaders:
# BAD-STRING-GNU: 0x000000007ffffffd (AUXILIARY) Auxiliary library: <Invalid offset 0x1>
# BAD-STRING-GNU: 0x000000007ffffffe (USED) Not needed object: <Invalid offset 0x1>
# BAD-STRING-GNU: 0x000000000000000e (SONAME) Library soname: <Invalid offset 0x1>
-# BAD-STRING-GNU: 0x000000000000000f (RPATH) <Invalid offset 0x1>
-# BAD-STRING-GNU: 0x000000000000001d (RUNPATH) <Invalid offset 0x1>
+# BAD-STRING-GNU: 0x000000000000000f (RPATH) Library rpath: <Invalid offset 0x1>
+# BAD-STRING-GNU: 0x000000000000001d (RUNPATH) Library runpath: <Invalid offset 0x1>
--- !ELF
FileHeader:
diff --git a/llvm/test/tools/llvm-readobj/elf-dynamic-tags.test b/llvm/test/tools/llvm-readobj/elf-dynamic-tags.test
index 2e4f390920f..dea94bee9ad 100644
--- a/llvm/test/tools/llvm-readobj/elf-dynamic-tags.test
+++ b/llvm/test/tools/llvm-readobj/elf-dynamic-tags.test
@@ -19,7 +19,7 @@
# LLVM-NEXT: 0x000000000000000C INIT 0x1000
# LLVM-NEXT: 0x000000000000000D FINI 0x1000
# LLVM-NEXT: 0x000000000000000E SONAME Library soname: [U]
-# LLVM-NEXT: 0x000000000000000F RPATH f
+# LLVM-NEXT: 0x000000000000000F RPATH Library rpath: [f]
# LLVM-NEXT: 0x0000000000000010 SYMBOLIC 0x1234567890ABCDEF
# LLVM-NEXT: 0x0000000000000011 REL 0x1000
# LLVM-NEXT: 0x0000000000000012 RELSZ 16 (bytes)
@@ -33,7 +33,7 @@
# LLVM-NEXT: 0x000000000000001A FINI_ARRAY 0x1000
# LLVM-NEXT: 0x000000000000001B INIT_ARRAYSZ 16 (bytes)
# LLVM-NEXT: 0x000000000000001C FINI_ARRAYSZ 16 (bytes)
-# LLVM-NEXT: 0x000000000000001D RUNPATH w
+# LLVM-NEXT: 0x000000000000001D RUNPATH Library runpath: [w]
# LLVM-NEXT: 0x000000000000001E FLAGS ORIGIN SYMBOLIC TEXTREL BIND_NOW STATIC_TLS {{$}}
# LLVM-NEXT: 0x0000000000000020 PREINIT_ARRAY 0x1000
# LLVM-NEXT: 0x0000000000000021 PREINIT_ARRAYSZ 16 (bytes)
@@ -84,7 +84,7 @@
# GNU-NEXT: 0x000000000000000c (INIT) 0x1000
# GNU-NEXT: 0x000000000000000d (FINI) 0x1000
# GNU-NEXT: 0x000000000000000e (SONAME) Library soname: [U]
-# GNU-NEXT: 0x000000000000000f (RPATH) f
+# GNU-NEXT: 0x000000000000000f (RPATH) Library rpath: [f]
# GNU-NEXT: 0x0000000000000010 (SYMBOLIC) 0x1234567890abcdef
# GNU-NEXT: 0x0000000000000011 (REL) 0x1000
# GNU-NEXT: 0x0000000000000012 (RELSZ) 16 (bytes)
@@ -98,7 +98,7 @@
# GNU-NEXT: 0x000000000000001a (FINI_ARRAY) 0x1000
# GNU-NEXT: 0x000000000000001b (INIT_ARRAYSZ) 16 (bytes)
# GNU-NEXT: 0x000000000000001c (FINI_ARRAYSZ) 16 (bytes)
-# GNU-NEXT: 0x000000000000001d (RUNPATH) w
+# GNU-NEXT: 0x000000000000001d (RUNPATH) Library runpath: [w]
# GNU-NEXT: 0x000000000000001e (FLAGS) ORIGIN SYMBOLIC TEXTREL BIND_NOW STATIC_TLS {{$}}
# GNU-NEXT: 0x0000000000000020 (PREINIT_ARRAY) 0x1000
# GNU-NEXT: 0x0000000000000021 (PREINIT_ARRAYSZ) 16 (bytes)
diff --git a/llvm/test/tools/llvm-readobj/rpath.test b/llvm/test/tools/llvm-readobj/rpath.test
index c615adaa7a7..75be5e2c668 100644
--- a/llvm/test/tools/llvm-readobj/rpath.test
+++ b/llvm/test/tools/llvm-readobj/rpath.test
@@ -1,4 +1,4 @@
RUN: llvm-readobj --dynamic-table %p/Inputs/rpath.exe.elf-x86_64 \
RUN: | FileCheck %s
-CHECK: 0x000000000000000F RPATH /usr/local/lib
+CHECK: 0x000000000000000F RPATH Library rpath: [/usr/local/lib]
diff --git a/llvm/tools/llvm-readobj/ELFDumper.cpp b/llvm/tools/llvm-readobj/ELFDumper.cpp
index 4a5be0ba84f..324bd5cac05 100644
--- a/llvm/tools/llvm-readobj/ELFDumper.cpp
+++ b/llvm/tools/llvm-readobj/ELFDumper.cpp
@@ -206,8 +206,6 @@ private:
void loadDynamicTable(const ELFFile<ELFT> *Obj);
void parseDynamicTable();
- void printDynamicString(uint64_t Offset, raw_ostream &OS,
- bool WithBracket = true) const;
StringRef getSymbolVersion(StringRef StrTab, const Elf_Sym *symb,
bool &IsDefault) const;
void LoadVersionMap() const;
@@ -1791,22 +1789,6 @@ void printFlags(T Value, ArrayRef<EnumEntry<TFlag>> Flags, raw_ostream &OS) {
}
template <class ELFT>
-void ELFDumper<ELFT>::printDynamicString(uint64_t Value,
- raw_ostream &OS,
- bool WithBracket) const {
- if (DynamicStringTable.empty())
- OS << "<String table is empty or was not found> ";
- else if (Value < DynamicStringTable.size()) {
- if (WithBracket)
- OS << "[";
- OS << StringRef(DynamicStringTable.data() + Value);
- if (WithBracket)
- OS << "]";
- } else
- OS << "<Invalid offset 0x" << utohexstr(Value) << ">";
-}
-
-template <class ELFT>
void ELFDumper<ELFT>::printDynamicEntry(raw_ostream &OS, uint64_t Type,
uint64_t Value) const {
const char *ConvChar =
@@ -1952,22 +1934,27 @@ void ELFDumper<ELFT>::printDynamicEntry(raw_ostream &OS, uint64_t Type,
case DT_SONAME:
case DT_AUXILIARY:
case DT_USED:
- case DT_FILTER: {
+ case DT_FILTER:
+ case DT_RPATH:
+ case DT_RUNPATH: {
const std::map<uint64_t, const char*> TagNames = {
{DT_NEEDED, "Shared library"},
{DT_SONAME, "Library soname"},
{DT_AUXILIARY, "Auxiliary library"},
{DT_USED, "Not needed object"},
{DT_FILTER, "Filter library"},
+ {DT_RPATH, "Library rpath"},
+ {DT_RUNPATH, "Library runpath"},
};
OS << TagNames.at(Type) << ": ";
- printDynamicString(Value, OS);
+ if (DynamicStringTable.empty())
+ OS << "<String table is empty or was not found> ";
+ else if (Value < DynamicStringTable.size())
+ OS << "[" << StringRef(DynamicStringTable.data() + Value) << "]";
+ else
+ OS << "<Invalid offset 0x" << utohexstr(Value) << ">";
break;
}
- case DT_RPATH:
- case DT_RUNPATH:
- printDynamicString(Value, OS, false);
- break;
case DT_FLAGS:
printFlags(Value, makeArrayRef(ElfDynamicDTFlags), OS);
break;
OpenPOWER on IntegriCloud