[PATCH] D61718: [llvm-objdump] Print st_other

Fangrui Song via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 8 23:24:12 PDT 2019


MaskRay created this revision.
MaskRay added reviewers: adalava, Bigcheese, emaste, sfertile, ruiu.
Herald added subscribers: llvm-commits, rupprecht, dexonsmith, atanasyan, jrtc27, arichardson.
Herald added a reviewer: espindola.
Herald added a project: LLVM.

Add support for ".hidden" ".internal" ".protected" and " 0x%02x" for
other st_other bits on some architectures.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D61718

Files:
  lld/test/ELF/gc-sections-metadata-startstop.s
  lld/test/ELF/mips-micro-relocs.s
  lld/test/ELF/mips-micror6-relocs.s
  llvm/tools/llvm-objdump/llvm-objdump.cpp


Index: llvm/tools/llvm-objdump/llvm-objdump.cpp
===================================================================
--- llvm/tools/llvm-objdump/llvm-objdump.cpp
+++ llvm/tools/llvm-objdump/llvm-objdump.cpp
@@ -1686,20 +1686,38 @@
       outs() << SectionName;
     }
 
-    outs() << '\t';
     if (Common || isa<ELFObjectFileBase>(O)) {
       uint64_t Val =
           Common ? Symbol.getAlignment() : ELFSymbolRef(Symbol).getSize();
-      outs() << format("\t %08" PRIx64 " ", Val);
+      outs() << format("\t%08" PRIx64, Val);
     }
 
-    if (Hidden)
-      outs() << ".hidden ";
+    if (isa<ELFObjectFileBase>(O)) {
+      uint8_t Other = ELFSymbolRef(Symbol).getOther();
+      switch (Other) {
+      case ELF::STV_DEFAULT:
+        break;
+      case ELF::STV_INTERNAL:
+        outs() << " .internal";
+        break;
+      case ELF::STV_HIDDEN:
+        outs() << " .hidden";
+        break;
+      case ELF::STV_PROTECTED:
+        outs() << " .protected";
+        break;
+      default:
+        outs() << format(" 0x%02x", Other);
+        break;
+      }
+    } else if (Hidden) {
+      outs() << " .hidden";
+    }
 
     if (Demangle)
-      outs() << demangle(Name) << '\n';
+      outs() << ' ' << demangle(Name) << '\n';
     else
-      outs() << Name << '\n';
+      outs() << ' ' << Name << '\n';
   }
 }
 
Index: lld/test/ELF/mips-micror6-relocs.s
===================================================================
--- lld/test/ELF/mips-micror6-relocs.s
+++ lld/test/ELF/mips-micror6-relocs.s
@@ -26,8 +26,8 @@
 # EL-NEXT:    20014:  7f 80 f6 ff  beqzc  $3, -36
 # EL-NEXT:    20018:  ff b7 f4 ff  balc   -24 <foo>
 
-# SYM: 00020000 g F     .text           00000000 foo
-# SYM: 00020010         .text           00000000 __start
+# SYM: 00020000 g F     .text  00000000 0x80 foo
+# SYM: 00020010         .text  00000000 0x80 __start
 
   .text
   .set micromips
Index: lld/test/ELF/mips-micro-relocs.s
===================================================================
--- lld/test/ELF/mips-micro-relocs.s
+++ lld/test/ELF/mips-micro-relocs.s
@@ -53,9 +53,9 @@
 # EL:      Contents of section .debug_info
 # EL-NEXT:  0000 11000200
 
-# SYM: 00038000         .got            00000000 .hidden _gp
-# SYM: 00020000 g F     .text           00000000 foo
-# SYM: 00020010         .text           00000000 __start
+# SYM: 00038000         .got   00000000 .hidden _gp
+# SYM: 00020000 g F     .text  00000000 0x80 foo
+# SYM: 00020010         .text  00000000 0x80 __start
 
 # ELF: ElfHeader {
 # ELF:   Entry: 0x20011
Index: lld/test/ELF/gc-sections-metadata-startstop.s
===================================================================
--- lld/test/ELF/gc-sections-metadata-startstop.s
+++ lld/test/ELF/gc-sections-metadata-startstop.s
@@ -11,7 +11,7 @@
 # CHECK-NOT: yy
 
 # CHECK: SYMBOL TABLE:
-# CHECK: xx 00000000 __start_xx
+# CHECK:   xx    00000000 .protected __start_xx
 # CHECK: w *UND* 00000000 __start_yy
 
 .weak __start_xx


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D61718.198763.patch
Type: text/x-patch
Size: 2967 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190509/20ada256/attachment.bin>


More information about the llvm-commits mailing list