HomePhabricator

[llvm-readobj] Switch command line parsing from llvm::cl to OptTable

Authored by MaskRay on Jul 12 2021, 10:14 AM.

Description

[llvm-readobj] Switch command line parsing from llvm::cl to OptTable

Users should generally observe no difference as long as they don't use
unintended option forms. Behavior changes:

  • -t=d is removed. Use -t d instead.
  • --demangle=false and --demangle=0 cannot be used. Omit the option or use --no-demangle. Other flag-style options don't have --no- forms.
  • --help-list is removed. This is a cl:: specific option.
  • llvm-readobj now supports grouped short options as well.
  • --color is removed. This is generally not useful (only apply to errors/warnings) but was inherited from Support.

Some adjustment to the canonical forms
(usually from GNU readelf; currently llvm-readobj has too many redundant aliases):

  • --dyn-syms is canonical. --dyn-symbols is a hidden alias
  • --file-header is canonical. --file-headers is a hidden alias
  • --histogram is canonical. --elf-hash-histogram is a hidden alias
  • --relocs is canonical. --relocations is a hidden alias
  • --section-groups is canonical. --elf-section-groups is a hidden alias

OptTable avoids global option collision if we decide to support multiplexing for binary utilities.

  • Most one-dash long options are still supported. -dt, -sd, -st, -sr are dropped due to their conflict with grouped short options.
  • --section-mapping=false (D57365) is strange but is kept for now.
  • Many cl::opt variables were unnecessarily external. I added static whenever appropriate.

Reviewed By: jhenderson

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

Details

Committed
MaskRayJul 12 2021, 10:14 AM
Reviewer
jhenderson
Differential Revision
D105532: [llvm-readobj] Switch command line parsing from llvm::cl to OptTable
Parents
rGfe892114e33b: [flang][nfc] Simplify CMake
Branches
Unknown
Tags
Unknown