[llvm-objcopy] Change --only-keep to --only-section
authorJake Ehrlich <jakehehrlich@google.com>
Thu, 6 Dec 2018 02:03:53 +0000 (02:03 +0000)
committerJake Ehrlich <jakehehrlich@google.com>
Thu, 6 Dec 2018 02:03:53 +0000 (02:03 +0000)
I just hard core goofed when I wrote this and created a different name
for no good reason. I'm failry aware of most "fresh" users of llvm-objcopy
(that is, users which are not using it as a drop in replacement for GNU
objcopy) and can say that only "-j" is being used by such people so this
patch should strictly increase compatibility and not remove it.

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

llvm-svn: 348446

12 files changed:
llvm/test/tools/llvm-objcopy/ELF/basic-only-section.test [moved from llvm/test/tools/llvm-objcopy/ELF/basic-only-keep.test with 91% similarity]
llvm/test/tools/llvm-objcopy/ELF/dump-section.test
llvm/test/tools/llvm-objcopy/ELF/explicit-only-section-remove.test [moved from llvm/test/tools/llvm-objcopy/ELF/explicit-only-keep-remove.test with 89% similarity]
llvm/test/tools/llvm-objcopy/ELF/keep-only-section.test [moved from llvm/test/tools/llvm-objcopy/ELF/keep-only-keep.test with 90% similarity]
llvm/test/tools/llvm-objcopy/ELF/only-section-many.test [moved from llvm/test/tools/llvm-objcopy/ELF/only-keep-many.test with 100% similarity]
llvm/test/tools/llvm-objcopy/ELF/only-section-remove-strtab.test [moved from llvm/test/tools/llvm-objcopy/ELF/only-keep-remove-strtab.test with 87% similarity]
llvm/test/tools/llvm-objcopy/ELF/only-section-strip-non-alloc.test [moved from llvm/test/tools/llvm-objcopy/ELF/only-keep-strip-non-alloc.test with 86% similarity]
llvm/test/tools/llvm-objcopy/ELF/strip-sections-only-section.test [moved from llvm/test/tools/llvm-objcopy/ELF/strip-sections-only-keep.test with 87% similarity]
llvm/tools/llvm-objcopy/CopyConfig.cpp
llvm/tools/llvm-objcopy/CopyConfig.h
llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp
llvm/tools/llvm-objcopy/ObjcopyOpts.td

@@ -1,5 +1,5 @@
 # RUN: yaml2obj %s > %t
-# RUN: llvm-objcopy -only-keep=.test %t %t2
+# RUN: llvm-objcopy -only-section=.test %t %t2
 # RUN: llvm-objcopy -j .test %t %t3
 # RUN: llvm-readobj -file-headers -sections %t2 | FileCheck %s
 # RUN: diff %t2 %t3
index cf9accd..8e66f65 100644 (file)
@@ -1,6 +1,6 @@
 # RUN: yaml2obj %s > %t
 # RUN: llvm-objcopy -O binary -j .text %t %t2
-# RUN: llvm-objcopy -O binary -only-keep .text %t %t3
+# RUN: llvm-objcopy -O binary -only-section .text %t %t3
 # RUN: llvm-objcopy --dump-section .text=%t4 %t %t5
 # RUN: llvm-objcopy --dump-section .foo=%t6 %t %t7
 # RUN: not llvm-objcopy --dump-section .bar=%t8 %t %t9 2>&1 | FileCheck %s --check-prefix=NOBITS
@@ -1,5 +1,5 @@
 # RUN: yaml2obj %s > %t
-# RUN: llvm-objcopy -R=.test -only-keep=.test %t %t2
+# RUN: llvm-objcopy -R=.test -only-section=.test %t %t2
 # RUN: llvm-readobj -file-headers -sections %t2 | FileCheck %s
 
 !ELF
@@ -1,5 +1,5 @@
 # RUN: yaml2obj %s > %t
-# RUN: llvm-objcopy -keep-section=.test2 -only-keep=.test %t %t2
+# RUN: llvm-objcopy -keep-section=.test2 -only-section=.test %t %t2
 # RUN: llvm-objcopy -j .test -keep-section=.test2 %t %t3
 # RUN: llvm-readobj -file-headers -sections %t2 | FileCheck %s
 # RUN: diff %t2 %t3
@@ -1,5 +1,5 @@
 # RUN: yaml2obj %s > %t
-# RUN: llvm-objcopy -R .symtab -R .strtab -only-keep=.test %t %t2
+# RUN: llvm-objcopy -R .symtab -R .strtab -only-section=.test %t %t2
 # RUN: llvm-objcopy -j .test -R .strtab -R .symtab %t %t3
 # RUN: llvm-readobj -file-headers -sections %t2 | FileCheck %s
 # RUN: diff %t2 %t3
@@ -1,5 +1,5 @@
 # RUN: yaml2obj %s > %t
-# RUN: llvm-objcopy -strip-non-alloc -only-keep=.test %t %t2
+# RUN: llvm-objcopy -strip-non-alloc -only-section=.test %t %t2
 # RUN: llvm-readobj -file-headers -sections %t2 | FileCheck %s
 
 !ELF
@@ -1,5 +1,5 @@
 # RUN: yaml2obj %s > %t
-# RUN: llvm-objcopy -strip-sections -only-keep=.test %t %t2
+# RUN: llvm-objcopy -strip-sections -only-section=.test %t %t2
 # RUN: od -Ax -t x1 %t2 | FileCheck %s
 # RUN: od -Ax -t c  %t2 | FileCheck %s -check-prefix=TEXT
 
index 7361177..24f0e29 100644 (file)
@@ -315,8 +315,8 @@ DriverConfig parseObjcopyOptions(ArrayRef<const char *> ArgsArr) {
     Config.ToRemove.push_back(Arg->getValue());
   for (auto Arg : InputArgs.filtered(OBJCOPY_keep_section))
     Config.KeepSection.push_back(Arg->getValue());
-  for (auto Arg : InputArgs.filtered(OBJCOPY_only_keep))
-    Config.OnlyKeep.push_back(Arg->getValue());
+  for (auto Arg : InputArgs.filtered(OBJCOPY_only_section))
+    Config.OnlySection.push_back(Arg->getValue());
   for (auto Arg : InputArgs.filtered(OBJCOPY_add_section))
     Config.AddSection.push_back(Arg->getValue());
   for (auto Arg : InputArgs.filtered(OBJCOPY_dump_section))
index f658511..ce6ead8 100644 (file)
@@ -61,7 +61,7 @@ struct CopyConfig {
   std::vector<StringRef> AddSection;
   std::vector<StringRef> DumpSection;
   std::vector<StringRef> KeepSection;
-  std::vector<StringRef> OnlyKeep;
+  std::vector<StringRef> OnlySection;
   std::vector<StringRef> SymbolsToGlobalize;
   std::vector<StringRef> SymbolsToKeep;
   std::vector<StringRef> SymbolsToLocalize;
index 7430b19..3b9f62e 100644 (file)
@@ -415,10 +415,10 @@ static void handleArgs(const CopyConfig &Config, Object &Obj,
     };
 
   // Explicit copies:
-  if (!Config.OnlyKeep.empty()) {
+  if (!Config.OnlySection.empty()) {
     RemovePred = [&Config, RemovePred, &Obj](const SectionBase &Sec) {
       // Explicitly keep these sections regardless of previous removes.
-      if (is_contained(Config.OnlyKeep, Sec.Name))
+      if (is_contained(Config.OnlySection, Sec.Name))
         return false;
 
       // Allow all implicit removes.
index 73985ef..1f7e64e 100644 (file)
@@ -78,9 +78,9 @@ defm redefine_symbol
       MetaVarName<"old=new">;
 defm keep_section : Eq<"keep-section", "Keep <section>">,
                     MetaVarName<"section">;
-defm only_keep : Eq<"only-keep", "Remove all but <section>">,
-                 MetaVarName<"section">;
-def j : JoinedOrSeparate<["-"], "j">, Alias<only_keep>;
+defm only_section : Eq<"only-section", "Remove all but <section>">,
+                    MetaVarName<"section">;
+def j : JoinedOrSeparate<["-"], "j">, Alias<only_section>;
 defm add_section
     : Eq<"add-section",
          "Make a section named <section> with the contents of <file>.">,