From 46580d43fc70dcecf21d2cedceeb4910c756fa6e Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Mon, 12 Jul 2021 10:14:42 -0700 Subject: [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 --- llvm/tools/llvm-readobj/llvm-readobj.h | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'llvm/tools/llvm-readobj/llvm-readobj.h') diff --git a/llvm/tools/llvm-readobj/llvm-readobj.h b/llvm/tools/llvm-readobj/llvm-readobj.h index d9813f5..43d19b4 100644 --- a/llvm/tools/llvm-readobj/llvm-readobj.h +++ b/llvm/tools/llvm-readobj/llvm-readobj.h @@ -32,15 +32,15 @@ namespace llvm { } // namespace llvm namespace opts { - extern llvm::cl::opt SectionRelocations; - extern llvm::cl::opt SectionSymbols; - extern llvm::cl::opt SectionData; - extern llvm::cl::opt ExpandRelocs; - extern llvm::cl::opt RawRelr; - extern llvm::cl::opt CodeViewSubsectionBytes; - extern llvm::cl::opt Demangle; - enum OutputStyleTy { LLVM, GNU }; - extern llvm::cl::opt Output; +extern bool SectionRelocations; +extern bool SectionSymbols; +extern bool SectionData; +extern bool ExpandRelocs; +extern bool RawRelr; +extern bool CodeViewSubsectionBytes; +extern bool Demangle; +enum OutputStyleTy { LLVM, GNU }; +extern OutputStyleTy Output; } // namespace opts #define LLVM_READOBJ_ENUM_ENT(ns, enum) \ -- cgit v1.1