https://bugs.llvm.org/show_bug.cgi?id=40788

            Bug ID: 40788
           Summary: Use section name for section symbol names in
                    llvm-readobj
           Product: tools
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: llvm-readobj
          Assignee: unassignedb...@nondot.org
          Reporter: jh7370.2...@my.bristol.ac.uk
                CC: jh7370.2...@my.bristol.ac.uk, llvm-bugs@lists.llvm.org

llvm-readobj + llvm-readelf print an empty string for section symbols. This is
technically correct, in the section symbols typically have no name, but it is
not particularly useful and makes the symbol table dump harder to interpret
(you have to lookup the section index and inspect the section header table to
map the symbol to its corresponding section).

This is similar to bug 39995, where section names are now being used for symbol
names for ELF STT_SECTION symbols. However, whereas that bug brought llvm-nm
closer to GNU nm's output, the same is not the case here. It is worth noting
that GNU objdump's -t output also uses the section names for such symbols.

I think we should do the same here. In all likelihood it won't hurt any
parsers, since the name is at the end of the line, and would be an improvement
over GNU readelf. I think we should do it for both GNU and LLVM style output as
GNU style is more compact and more familiar to many developers.

Current output:
C:\llvm\llvm\test\tools\llvm-readobj> c:\llvm\build\debug\bin\llvm-readobj.exe
"--symbols" "C:\llvm\llvm\test\tools\llvm-readobj/Inputs/relocs.obj.elf-x86_64"
"--elf-output-style=GNU"

Symbol table '.symtab' contains 6 entries:
   Num:    Value          Size Type    Bind   Vis      Ndx Name
     0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND
     1: 0000000000000000     0 SECTION LOCAL  DEFAULT    1
     2: 0000000000000000     0 SECTION LOCAL  DEFAULT    3
     3: 0000000000000000     0 SECTION LOCAL  DEFAULT    4
     4: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND
_GLOBAL_OFFSET_TABLE_
     5: 0000000000000000     0 TLS     GLOBAL DEFAULT  UND sym

Proposal:
C:\llvm\llvm\test\tools\llvm-readobj> c:\llvm\build\debug\bin\llvm-readobj.exe
"--symbols" "C:\llvm\llvm\test\tools\llvm-readobj/Inputs/relocs.obj.elf-x86_64"
"--elf-output-style=GNU"

Symbol table '.symtab' contains 6 entries:
   Num:    Value          Size Type    Bind   Vis      Ndx Name
     0: 0000000000000000     0 NOTYPE  LOCAL  DEFAULT  UND
     1: 0000000000000000     0 SECTION LOCAL  DEFAULT    1 .text
     2: 0000000000000000     0 SECTION LOCAL  DEFAULT    3 .data
     3: 0000000000000000     0 SECTION LOCAL  DEFAULT    4 .bss
     4: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT  UND
_GLOBAL_OFFSET_TABLE_
     5: 0000000000000000     0 TLS     GLOBAL DEFAULT  UND sym

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to