[PATCH] D102321: [llvm-nm] Support the -V option, print that the tool is compatible with GNU nm

Martin Storsjö via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 12 02:49:01 PDT 2021


mstorsjo created this revision.
mstorsjo added reviewers: MaskRay, jhenderson.
Herald added a subscriber: rupprecht.
mstorsjo requested review of this revision.
Herald added a project: LLVM.

This unlocks some codepaths in libtool.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D102321

Files:
  llvm/test/tools/llvm-nm/libtool-version.test
  llvm/tools/llvm-nm/llvm-nm.cpp


Index: llvm/tools/llvm-nm/llvm-nm.cpp
===================================================================
--- llvm/tools/llvm-nm/llvm-nm.cpp
+++ llvm/tools/llvm-nm/llvm-nm.cpp
@@ -229,6 +229,8 @@
                                       "TBD(Mach-O) only"),
                              cl::cat(NMCat));
 
+cl::opt<bool> Version("V", cl::desc("Print version info"), cl::cat(NMCat));
+
 cl::extrahelp HelpResponse("\nPass @FILE as argument to read options from FILE.\n");
 
 bool PrintAddress = true;
@@ -2235,11 +2237,22 @@
   }
 }
 
+static void printExtraVersionInfo(raw_ostream &outs) {
+  outs << "llvm-nm, compatible with GNU nm\n";
+}
+
 int main(int argc, char **argv) {
   InitLLVM X(argc, argv);
   cl::HideUnrelatedOptions(NMCat);
+  cl::AddExtraVersionPrinter(printExtraVersionInfo);
   cl::ParseCommandLineOptions(argc, argv, "llvm symbol table dumper\n");
 
+  if (Version) {
+    printExtraVersionInfo(outs());
+    cl::PrintVersionMessage();
+    return 0;
+  }
+
   // llvm-nm only reads binary files.
   if (error(sys::ChangeStdinToBinary()))
     return 1;
Index: llvm/test/tools/llvm-nm/libtool-version.test
===================================================================
--- /dev/null
+++ llvm/test/tools/llvm-nm/libtool-version.test
@@ -0,0 +1,5 @@
+RUN: llvm-nm -V | FileCheck %s
+RUN: llvm-nm --version | FileCheck %s
+Check that the output of llvm-nm -V (and --version) contains the text
+"GNU" somewhere, to let libtool know that it is compatible with GNU nm.
+CHECK: GNU


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D102321.344744.patch
Type: text/x-patch
Size: 1500 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210512/6e54e4ca/attachment.bin>


More information about the llvm-commits mailing list