[all-commits] [llvm/llvm-project] b87a0f: [llvm-readobj] - Report a warning when an unexpect...

Georgii Rymar via All-commits all-commits at lists.llvm.org
Tue Feb 18 03:36:33 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: b87a0f7416f1a657d808690295b44669849e7bfc
      https://github.com/llvm/llvm-project/commit/b87a0f7416f1a657d808690295b44669849e7bfc
  Author: Georgii Rymar <grimar at accesssoftek.com>
  Date:   2020-02-18 (Tue, 18 Feb 2020)

  Changed paths:
    M llvm/test/tools/llvm-readobj/ELF/dyn-symbols.test
    M llvm/tools/llvm-readobj/ELFDumper.cpp

  Log Message:
  -----------
  [llvm-readobj] - Report a warning when an unexpected DT_SYMENT tag value is met.

There was a short discussion about this:
https://reviews.llvm.org/D73484#inline-676942

To summarize:
It is a bit unclear to me why the `DT_SYMENT` tag exist.
LLD has the code that does:
"addInt(DT_SYMENT, sizeof(Elf_Sym));" and I guess other linkers has the same logic.
It is unclear why it can be possible to have other values rather than values of
a size of platform symbol. Seems it is not possible, and atm for me it looks that
this tag should not be used. This patch starts reporting the warning when the
value it contains differs from a symbol size for a 32/64 bit platform for safety.
It keeps the rest of the logic we have unchanged. Before this patch we did not handle
the tag at all.

Differential review: https://reviews.llvm.org/D74479




More information about the All-commits mailing list