diff options
author | Kristina Brooks <kristina@nym.hush.com> | 2018-11-11 17:47:13 +0000 |
---|---|---|
committer | Kristina Brooks <kristina@nym.hush.com> | 2018-11-11 17:47:13 +0000 |
commit | 0674f9d7394ccc348512a6da46ebbb93094e59fd (patch) | |
tree | c67c44d820fff924e979f84e190df7b5523daf90 | |
parent | 622b71d40af9d9552a056eda960ea015ec324b0d (diff) | |
download | llvm-0674f9d7394ccc348512a6da46ebbb93094e59fd.zip llvm-0674f9d7394ccc348512a6da46ebbb93094e59fd.tar.gz llvm-0674f9d7394ccc348512a6da46ebbb93094e59fd.tar.bz2 |
[llvm-objdump] Add symbol 'O' for object data
Improve compatibility with GNU objdump by showing `O` next to
global symbol names, instead of a blank space.
Patch by Higuoxing (Xing).
Reviewers: MaskRay
Differential Revision: https://reviews.llvm.org/D54380
llvm-svn: 346610
5 files changed, 13 insertions, 11 deletions
diff --git a/llvm/test/tools/llvm-objdump/WebAssembly/symbol-table.test b/llvm/test/tools/llvm-objdump/WebAssembly/symbol-table.test index fff4c9f..b8455aa 100644 --- a/llvm/test/tools/llvm-objdump/WebAssembly/symbol-table.test +++ b/llvm/test/tools/llvm-objdump/WebAssembly/symbol-table.test @@ -2,8 +2,8 @@ RUN: llvm-objdump -t %p/../Inputs/trivial.obj.wasm | FileCheck %s CHECK: SYMBOL TABLE: CHECK-NEXT: 00000002 g F CODE main -CHECK-NEXT: 00000000 l DATA .L.str +CHECK-NEXT: 00000000 l O DATA .L.str CHECK-NEXT: 00000000 g F *UND* puts CHECK-NEXT: 00000003 l F CODE .LSomeOtherFunction_bitcast CHECK-NEXT: 00000000 g F *UND* SomeOtherFunction -CHECK-NEXT: 00000010 g DATA var +CHECK-NEXT: 00000010 g O DATA var diff --git a/llvm/test/tools/llvm-objdump/X86/macho-symbol-table.test b/llvm/test/tools/llvm-objdump/X86/macho-symbol-table.test index 19c619e..663edc92 100644 --- a/llvm/test/tools/llvm-objdump/X86/macho-symbol-table.test +++ b/llvm/test/tools/llvm-objdump/X86/macho-symbol-table.test @@ -1,8 +1,8 @@ RUN: llvm-objdump -macho -t %p/Inputs/hello.obj.macho-x86_64 | FileCheck %s -CHECK: SYMBOL TABLE: -CHECK: 000000000000003b l __TEXT,__cstring L_.str -CHECK: 0000000000000068 l __TEXT,__eh_frame EH_frame0 -CHECK: 0000000000000000 g F __TEXT,__text _main -CHECK: 0000000000000080 g __TEXT,__eh_frame _main.eh -CHECK: 0000000000000000 *UND* _printf +CHECK: SYMBOL TABLE: +CHECK-NEXT: 000000000000003b l O __TEXT,__cstring L_.str +CHECK-NEXT: 0000000000000068 l O __TEXT,__eh_frame EH_frame0 +CHECK-NEXT: 0000000000000000 g F __TEXT,__text _main +CHECK-NEXT: 0000000000000080 g O __TEXT,__eh_frame _main.eh +CHECK-NEXT: 0000000000000000 *UND* _printf diff --git a/llvm/test/tools/llvm-objdump/common-symbol-elf.test b/llvm/test/tools/llvm-objdump/common-symbol-elf.test index 32df05a..3ffea44 100644 --- a/llvm/test/tools/llvm-objdump/common-symbol-elf.test +++ b/llvm/test/tools/llvm-objdump/common-symbol-elf.test @@ -1,3 +1,3 @@ // RUN: llvm-objdump -t %p/Inputs/common-symbol-elf | FileCheck %s -CHECK: 00000400 g *COM* 00000008 common_symbol +CHECK: 00000400 g O *COM* 00000008 common_symbol diff --git a/llvm/test/tools/llvm-objdump/symbol-table-elf.test b/llvm/test/tools/llvm-objdump/symbol-table-elf.test index fc1eccd..50ca755 100644 --- a/llvm/test/tools/llvm-objdump/symbol-table-elf.test +++ b/llvm/test/tools/llvm-objdump/symbol-table-elf.test @@ -5,9 +5,9 @@ # CHECK: SYMBOL TABLE: # CHECK-NEXT: 0000000000000000 *UND* 00000000 # CHECK-NEXT: 0000000000001004 l F .text 00000000 lfoo -# CHECK-NEXT: 0000000000001008 l .text 00000000 lbar +# CHECK-NEXT: 0000000000001008 l O .text 00000000 lbar # CHECK-NEXT: 0000000000001004 g F .text 00000000 foo -# CHECK-NEXT: 0000000000001008 g .text 00000000 bar +# CHECK-NEXT: 0000000000001008 g O .text 00000000 bar !ELF FileHeader: diff --git a/llvm/tools/llvm-objdump/llvm-objdump.cpp b/llvm/tools/llvm-objdump/llvm-objdump.cpp index 1f936e5..827d367 100644 --- a/llvm/tools/llvm-objdump/llvm-objdump.cpp +++ b/llvm/tools/llvm-objdump/llvm-objdump.cpp @@ -2014,6 +2014,8 @@ void llvm::PrintSymbolTable(const ObjectFile *o, StringRef ArchiveName, FileFunc = 'f'; else if (Type == SymbolRef::ST_Function) FileFunc = 'F'; + else if (Type == SymbolRef::ST_Data) + FileFunc = 'O'; const char *Fmt = o->getBytesInAddress() > 4 ? "%016" PRIx64 : "%08" PRIx64; |