1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 10:42:39 +01:00

[llvm-objcopy] Change --only-keep to --only-section

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
This commit is contained in:
Jake Ehrlich 2018-12-06 02:03:53 +00:00
parent 8707b0918b
commit ed2e21ce3f
12 changed files with 15 additions and 15 deletions

View File

@ -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

View 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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View 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))

View 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;

View 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.

View 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>.">,