[llvm-strip] Support --strip-sections

llvm-objcopy already supports --strip-sections. It is a good fit for its alias llvm-strip
to support it as well.

Reviewers: rupprecht, jhenderson

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

llvm-svn: 368241
This commit is contained in:
Wolfgang Pieb 2019-08-08 00:35:16 +00:00
parent 80ef2f05d8
commit ab751a7c8b
3 changed files with 9 additions and 0 deletions

View File

@ -8,6 +8,11 @@
# RUN: llvm-objcopy %t %t3
# RUN: od -t x1 -j 4096 -N 12 %t3 | FileCheck %s --check-prefix=VALIDATE
## Check that llvm-strip --strip-sections is equivalent to
## llvm-objcopy --strip-sections.
# RUN: llvm-strip --strip-sections %t -o %t4
# RUN: cmp %t2 %t4
!ELF
FileHeader:
Class: ELFCLASS64

View File

@ -810,6 +810,7 @@ parseStripOptions(ArrayRef<const char *> ArgsArr,
InputArgs.hasFlag(STRIP_discard_all, STRIP_discard_locals)
? DiscardType::All
: DiscardType::Locals;
Config.StripSections = InputArgs.hasArg(STRIP_strip_sections);
Config.StripUnneeded = InputArgs.hasArg(STRIP_strip_unneeded);
if (auto Arg = InputArgs.getLastArg(STRIP_strip_all, STRIP_no_strip_all))
Config.StripAll = Arg->getOption().getID() == STRIP_strip_all;

View File

@ -52,6 +52,9 @@ def strip_debug : Flag<["--"], "strip-debug">,
def d : Flag<["-"], "d">, Alias<strip_debug>;
def g : Flag<["-"], "g">, Alias<strip_debug>;
def S : Flag<["-"], "S">, Alias<strip_debug>;
def strip_sections
: Flag<["--"], "strip-sections">,
HelpText<"Remove all section headers and all sections not in segments">;
def strip_unneeded : Flag<["--"], "strip-unneeded">,
HelpText<"Remove all symbols not needed by relocations">;