[llvm-strip] Support -s alias for --strip-all. Make both strip and objcopy case sensi...
authorJordan Rupprecht <rupprecht@google.com>
Tue, 23 Oct 2018 18:46:33 +0000 (18:46 +0000)
committerJordan Rupprecht <rupprecht@google.com>
Tue, 23 Oct 2018 18:46:33 +0000 (18:46 +0000)
commitaaeaa0a8b310bae6081abc2ef76687b96907d8da
tree969facdba75aa1056cf1b415e621d7df08a3f340
parent55fb053f577ece32711e4d785d8ccca4f70cdf09
[llvm-strip] Support -s alias for --strip-all. Make both strip and objcopy case sensitive to support both -s (--strip-all) and -S (--strip-debug).

Summary:
GNU strip supports both `-s` and `-S` as aliases for `--strip-all` and `--strip-debug`, respectfully.

As part of this, it turns out that strip/objcopy were accepting case insensitive command line args. I'm not sure if there was an explicit reason for this. The only others uses of this are llvm-cvtres/llvm-mt/llvm-lib, which are all tools specific for windows support. Forcing case sensitivity allows both aliases to exist, but seems like a good idea anyway.

And as a surprise test case adjustment, the llvm-strip unit test was running with `-keep=unavailable_symbol`, despite `keep` not be a valid flag for strip. This is because there is a flag `-K` which, when case insensitivity is permitted, allows it to be interpreted as `-K` = `eep=unavailable_symbol` (e.g. to allow `-Kfoo` == `--keep-symbol=foo`).

Reviewers: jakehehrlich, jhenderson, alexshap

Reviewed By: jakehehrlich

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D53163

llvm-svn: 345068
llvm/test/tools/llvm-objcopy/strip-all.test
llvm/tools/llvm-objcopy/CopyConfig.cpp
llvm/tools/llvm-objcopy/StripOpts.td