Index: llvm/test/tools/llvm-objcopy/basic-only-sections.test =================================================================== --- llvm/test/tools/llvm-objcopy/basic-only-sections.test +++ llvm/test/tools/llvm-objcopy/basic-only-sections.test @@ -1,5 +1,5 @@ # RUN: yaml2obj %s > %t -# RUN: llvm-objcopy -only-keep=.test %t %t2 +# RUN: llvm-objcopy -only-sections=.test %t %t2 # RUN: llvm-objcopy -j .test %t %t3 # RUN: llvm-readobj -file-headers -sections %t2 | FileCheck %s # RUN: diff %t2 %t3 Index: llvm/test/tools/llvm-objcopy/dump-section.test =================================================================== --- llvm/test/tools/llvm-objcopy/dump-section.test +++ llvm/test/tools/llvm-objcopy/dump-section.test @@ -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-sections .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 Index: llvm/test/tools/llvm-objcopy/explicit-only-sections-remove.test =================================================================== --- llvm/test/tools/llvm-objcopy/explicit-only-sections-remove.test +++ llvm/test/tools/llvm-objcopy/explicit-only-sections-remove.test @@ -1,5 +1,5 @@ # RUN: yaml2obj %s > %t -# RUN: llvm-objcopy -R=.test -only-keep=.test %t %t2 +# RUN: llvm-objcopy -R=.test -only-sections=.test %t %t2 # RUN: llvm-readobj -file-headers -sections %t2 | FileCheck %s !ELF Index: llvm/test/tools/llvm-objcopy/keep-only-sections.test =================================================================== --- llvm/test/tools/llvm-objcopy/keep-only-sections.test +++ llvm/test/tools/llvm-objcopy/keep-only-sections.test @@ -1,5 +1,5 @@ # RUN: yaml2obj %s > %t -# RUN: llvm-objcopy -keep=.test2 -only-keep=.test %t %t2 +# RUN: llvm-objcopy -keep=.test2 -only-sections=.test %t %t2 # RUN: llvm-objcopy -j .test -keep=.test2 %t %t3 # RUN: llvm-readobj -file-headers -sections %t2 | FileCheck %s # RUN: diff %t2 %t3 Index: llvm/test/tools/llvm-objcopy/only-sections-remove-strtab.test =================================================================== --- llvm/test/tools/llvm-objcopy/only-sections-remove-strtab.test +++ llvm/test/tools/llvm-objcopy/only-sections-remove-strtab.test @@ -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-sections=.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 Index: llvm/test/tools/llvm-objcopy/only-sections-strip-non-alloc.test =================================================================== --- llvm/test/tools/llvm-objcopy/only-sections-strip-non-alloc.test +++ llvm/test/tools/llvm-objcopy/only-sections-strip-non-alloc.test @@ -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-sections=.test %t %t2 # RUN: llvm-readobj -file-headers -sections %t2 | FileCheck %s !ELF Index: llvm/test/tools/llvm-objcopy/strip-sections-only-sections.test =================================================================== --- llvm/test/tools/llvm-objcopy/strip-sections-only-sections.test +++ llvm/test/tools/llvm-objcopy/strip-sections-only-sections.test @@ -1,5 +1,5 @@ # RUN: yaml2obj %s > %t -# RUN: llvm-objcopy -strip-sections -only-keep=.test %t %t2 +# RUN: llvm-objcopy -strip-sections -only-sections=.test %t %t2 # RUN: od -Ax -t x1 %t2 | FileCheck %s # RUN: od -Ax -t c %t2 | FileCheck %s -check-prefix=TEXT Index: llvm/tools/llvm-objcopy/ObjcopyOpts.td =================================================================== --- llvm/tools/llvm-objcopy/ObjcopyOpts.td +++ llvm/tools/llvm-objcopy/ObjcopyOpts.td @@ -55,11 +55,11 @@ defm keep : Eq<"keep">, MetaVarName<"section">, HelpText<"Keep
">; -defm only_keep : Eq<"only-keep">, - MetaVarName<"section">, - HelpText<"Remove all but
">; +defm only_sections : Eq<"only-sections">, + MetaVarName<"section">, + HelpText<"Remove all but
">; def j : JoinedOrSeparate<["-"], "j">, - Alias; + Alias; defm add_section : Eq<"add-section">, MetaVarName<"section=file">, HelpText<"Make a section named
with the contents of .">; Index: llvm/tools/llvm-objcopy/llvm-objcopy.cpp =================================================================== --- llvm/tools/llvm-objcopy/llvm-objcopy.cpp +++ llvm/tools/llvm-objcopy/llvm-objcopy.cpp @@ -150,7 +150,7 @@ std::vector AddSection; std::vector DumpSection; std::vector Keep; - std::vector OnlyKeep; + std::vector OnlySections; std::vector SymbolsToGlobalize; std::vector SymbolsToKeep; std::vector SymbolsToLocalize; @@ -625,10 +625,10 @@ }; // Explicit copies: - if (!Config.OnlyKeep.empty()) { + if (!Config.OnlySections.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.OnlySections, Sec.Name)) return false; // Allow all implicit removes. @@ -959,8 +959,8 @@ Config.ToRemove.push_back(Arg->getValue()); for (auto Arg : InputArgs.filtered(OBJCOPY_keep)) Config.Keep.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_sections)) + Config.OnlySections.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))