[llvm-nm] Switch command line parsing from llvm::cl to OptTable
Part of https://lists.llvm.org/pipermail/llvm-dev/2021-July/151622.html
"Binary utilities: switch command line parsing from llvm::cl to OptTable"
Users should generally observe no difference as long as they only use intended
option forms. Behavior changes:
- -t=d is removed. Use -t d instead.
- --demangle=0 cannot be used. Omit the option or use --no-demangle instead.
- --help-list is removed. This is a cl:: specific option.
- -t diagnostic gets improved.
- This patch avoids cl::opt collision if we decide to support multiplexing for binary utilities
- One-dash long options are still supported.
- The -s collision (-s segment section for Mach-O) is unfortunate. -s means --print-armap in GNU nm.
- This patch removes the last cl::multi_val use case from the llvm/lib/Support/CommandLine.cpp library
-M (--print-armap), -U (--defined-only), and -W (--no-weak)
are now deprecated. They could conflict with future GNU nm options.
(--print-armap has an existing alias -s, so GNU will unlikely add a new one.
--no-weak (not in GNU nm) is rarely used anyway.)
--just-symbol-name is now deprecated in favor of
--format=just-symbols and -j.
Reviewed By: jhenderson
Differential Revision: https://reviews.llvm.org/D105330