[llvm] r342702 - [llvm-objcopy/llvm-strip]: handle --version
Jordan Rupprecht via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 20 17:47:31 PDT 2018
Author: rupprecht
Date: Thu Sep 20 17:47:31 2018
New Revision: 342702
URL: http://llvm.org/viewvc/llvm-project?rev=342702&view=rev
Log:
[llvm-objcopy/llvm-strip]: handle --version
Summary:
Implement --version for objcopy and strip.
I think there are LLVM utilities that automatically handle this, but that doesn't seem to work with custom parsing since this binary handles both objcopy and strip, so it uses custom parsing.
This fixes PR38298
Reviewers: jhenderson, alexshap, jakehehrlich
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D52328
Added:
llvm/trunk/test/tools/llvm-objcopy/objcopy-version.test
llvm/trunk/test/tools/llvm-objcopy/strip-version.test
Modified:
llvm/trunk/tools/llvm-objcopy/ObjcopyOpts.td
llvm/trunk/tools/llvm-objcopy/StripOpts.td
llvm/trunk/tools/llvm-objcopy/llvm-objcopy.cpp
Added: llvm/trunk/test/tools/llvm-objcopy/objcopy-version.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-objcopy/objcopy-version.test?rev=342702&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-objcopy/objcopy-version.test (added)
+++ llvm/trunk/test/tools/llvm-objcopy/objcopy-version.test Thu Sep 20 17:47:31 2018
@@ -0,0 +1,4 @@
+# RUN: llvm-objcopy -version | FileCheck %s
+# RUN: llvm-objcopy --version | FileCheck %s
+
+# CHECK: {{ version }}
Added: llvm/trunk/test/tools/llvm-objcopy/strip-version.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-objcopy/strip-version.test?rev=342702&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-objcopy/strip-version.test (added)
+++ llvm/trunk/test/tools/llvm-objcopy/strip-version.test Thu Sep 20 17:47:31 2018
@@ -0,0 +1,4 @@
+# RUN: llvm-strip -version | FileCheck %s
+# RUN: llvm-strip --version | FileCheck %s
+
+# CHECK: {{ version }}
Modified: llvm/trunk/tools/llvm-objcopy/ObjcopyOpts.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objcopy/ObjcopyOpts.td?rev=342702&r1=342701&r2=342702&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-objcopy/ObjcopyOpts.td (original)
+++ llvm/trunk/tools/llvm-objcopy/ObjcopyOpts.td Thu Sep 20 17:47:31 2018
@@ -107,6 +107,9 @@ defm keep_global_symbols
"with '#'. Leading and trailing whitespace is stripped from each "
"line. May be repeated to read symbols from many files.">;
+def version : Flag<[ "-", "--" ], "version">,
+ HelpText<"Print the version and exit.">;
+
defm weaken_symbol : Eq<"weaken-symbol">,
MetaVarName<"symbol">,
HelpText<"Mark <symbol> as weak">;
Modified: llvm/trunk/tools/llvm-objcopy/StripOpts.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objcopy/StripOpts.td?rev=342702&r1=342701&r2=342702&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-objcopy/StripOpts.td (original)
+++ llvm/trunk/tools/llvm-objcopy/StripOpts.td Thu Sep 20 17:47:31 2018
@@ -47,6 +47,10 @@ def K : JoinedOrSeparate<["-"], "K">,
def discard_all : Flag<["-", "--"], "discard-all">,
HelpText<"Remove all local symbols except file and section symbols">;
+
+def version : Flag<[ "-", "--" ], "version">,
+ HelpText<"Print the version and exit.">;
+
def x : Flag<["-"], "x">,
Alias<discard_all>;
Modified: llvm/trunk/tools/llvm-objcopy/llvm-objcopy.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-objcopy/llvm-objcopy.cpp?rev=342702&r1=342701&r2=342702&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-objcopy/llvm-objcopy.cpp (original)
+++ llvm/trunk/tools/llvm-objcopy/llvm-objcopy.cpp Thu Sep 20 17:47:31 2018
@@ -892,6 +892,11 @@ static DriverConfig parseObjcopyOptions(
exit(0);
}
+ if (InputArgs.hasArg(OBJCOPY_version)) {
+ cl::PrintVersionMessage();
+ exit(0);
+ }
+
SmallVector<const char *, 2> Positional;
for (auto Arg : InputArgs.filtered(OBJCOPY_UNKNOWN))
@@ -1019,6 +1024,11 @@ static DriverConfig parseStripOptions(Ar
exit(0);
}
+ if (InputArgs.hasArg(STRIP_version)) {
+ cl::PrintVersionMessage();
+ exit(0);
+ }
+
SmallVector<const char *, 2> Positional;
for (auto Arg : InputArgs.filtered(STRIP_UNKNOWN))
error("unknown argument '" + Arg->getAsString(InputArgs) + "'");
More information about the llvm-commits
mailing list