diff options
-rw-r--r-- | llvm/test/tools/llvm-objcopy/objcopy-version.test | 4 | ||||
-rw-r--r-- | llvm/test/tools/llvm-objcopy/strip-version.test | 4 | ||||
-rw-r--r-- | llvm/tools/llvm-objcopy/ObjcopyOpts.td | 3 | ||||
-rw-r--r-- | llvm/tools/llvm-objcopy/StripOpts.td | 4 | ||||
-rw-r--r-- | llvm/tools/llvm-objcopy/llvm-objcopy.cpp | 10 |
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) + "'"); |