[llvm-readelf] Make llvm-readelf more compatible with GNU readelf.
authorJordan Rupprecht <rupprecht@google.com>
Mon, 12 Nov 2018 18:02:38 +0000 (18:02 +0000)
committerJordan Rupprecht <rupprecht@google.com>
Mon, 12 Nov 2018 18:02:38 +0000 (18:02 +0000)
commitdbf552c40f3916d1ec0deca11bc432b91b8ea17a
treed9a3e9c0c9bf599a74a0a83c8013fbabed5ec37f
parentec3c0854ecaf85d878342f252ab877b53cfeae68
[llvm-readelf] Make llvm-readelf more compatible with GNU readelf.

Summary:
This change adds a bunch of options that GNU readelf supports. There is one breaking change when invoked as `llvm-readobj`, and three breaking changes when invoked as `llvm-readelf`:
 - Add --all (implies --file-header, --program-headers, etc.)
 - [Breaking] -a is --all instead of --arm-attributes
 - Add --file-header as an alias for --file-headers
 - Replace --sections with --sections-headers, keeping --sections as an alias for it
 - Add --relocs as an alias for --relocations
 - Add --dynamic as an alias for --dynamic-table
 - Add --segments as an alias for --program-headers
 - Add --section-groups as an alias for --elf-section-groups
 - Add --dyn-syms as an alias for --dyn-symbols
 - Add --syms as an alias for --symbols
 - Add --histogram as an alias for --elf-hash-histogram
 - [Breaking] When invoked as `llvm-readelf`, -s is --symbols instead of --sections
 - [Breaking] When invoked as `llvm-readelf`, -t is no longer an alias for --symbols

Reviewers: MaskRay, phosek, mcgrathr, jhenderson

Reviewed By: MaskRay, jhenderson

Subscribers: sbc100, aheejin, edd, jhenderson, silvas, echristo, compnerd, kristina, javed.absar, kristof.beyls, llvm-commits, Bigcheese

Differential Revision: https://reviews.llvm.org/D54124

llvm-svn: 346685
12 files changed:
llvm/test/MC/ARM/elf-execute-only-section.ll
llvm/test/tools/llvm-readobj/all.test [new file with mode: 0644]
llvm/test/tools/llvm-readobj/readelf-s-alias.test [new file with mode: 0644]
llvm/test/tools/llvm-readobj/sections.test
llvm/test/tools/llvm-readobj/symbols.test
llvm/tools/llvm-readobj/COFFDumper.cpp
llvm/tools/llvm-readobj/ELFDumper.cpp
llvm/tools/llvm-readobj/MachODumper.cpp
llvm/tools/llvm-readobj/ObjDumper.h
llvm/tools/llvm-readobj/WasmDumper.cpp
llvm/tools/llvm-readobj/llvm-readobj.cpp
llvm/tools/llvm-readobj/llvm-readobj.h