summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/test/tools/llvm-objcopy/objcopy-version.test4
-rw-r--r--llvm/test/tools/llvm-objcopy/strip-version.test4
-rw-r--r--llvm/tools/llvm-objcopy/ObjcopyOpts.td3
-rw-r--r--llvm/tools/llvm-objcopy/StripOpts.td4
-rw-r--r--llvm/tools/llvm-objcopy/llvm-objcopy.cpp10
5 files changed, 25 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-objcopy/objcopy-version.test b/llvm/test/tools/llvm-objcopy/objcopy-version.test
new file mode 100644
index 00000000000..3b5cd593ddf
--- /dev/null
+++ b/llvm/test/tools/llvm-objcopy/objcopy-version.test
@@ -0,0 +1,4 @@
+# RUN: llvm-objcopy -version | FileCheck %s
+# RUN: llvm-objcopy --version | FileCheck %s
+
+# CHECK: {{ version }}
diff --git a/llvm/test/tools/llvm-objcopy/strip-version.test b/llvm/test/tools/llvm-objcopy/strip-version.test
new file mode 100644
index 00000000000..bd91dd3de83
--- /dev/null
+++ b/llvm/test/tools/llvm-objcopy/strip-version.test
@@ -0,0 +1,4 @@
+# RUN: llvm-strip -version | FileCheck %s
+# RUN: llvm-strip --version | FileCheck %s
+
+# CHECK: {{ version }}
diff --git a/llvm/tools/llvm-objcopy/ObjcopyOpts.td b/llvm/tools/llvm-objcopy/ObjcopyOpts.td
index 9d771451bc6..469f76d24d0 100644
--- a/llvm/tools/llvm-objcopy/ObjcopyOpts.td
+++ b/llvm/tools/llvm-objcopy/ObjcopyOpts.td
@@ -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">;
diff --git a/llvm/tools/llvm-objcopy/StripOpts.td b/llvm/tools/llvm-objcopy/StripOpts.td
index 5abc23fb577..821dfa3b277 100644
--- a/llvm/tools/llvm-objcopy/StripOpts.td
+++ b/llvm/tools/llvm-objcopy/StripOpts.td
@@ -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>;
diff --git a/llvm/tools/llvm-objcopy/llvm-objcopy.cpp b/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
index 36ed77a8063..ce2a1f1f259 100644
--- a/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
+++ b/llvm/tools/llvm-objcopy/llvm-objcopy.cpp
@@ -892,6 +892,11 @@ static DriverConfig parseObjcopyOptions(ArrayRef<const char *> ArgsArr) {
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(ArrayRef<const char *> ArgsArr) {
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) + "'");
OpenPOWER on IntegriCloud