diff options
Diffstat (limited to 'llvm/tools/llvm-objcopy/llvm-objcopy.cpp')
-rw-r--r-- | llvm/tools/llvm-objcopy/llvm-objcopy.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/tools/llvm-objcopy/llvm-objcopy.cpp b/llvm/tools/llvm-objcopy/llvm-objcopy.cpp index 12d6205722f..b520a1415c2 100644 --- a/llvm/tools/llvm-objcopy/llvm-objcopy.cpp +++ b/llvm/tools/llvm-objcopy/llvm-objcopy.cpp @@ -83,6 +83,8 @@ static cl::alias ToRemoveA("R", cl::desc("Alias for remove-section"), cl::aliasopt(ToRemove)); static cl::opt<bool> StripAll("strip-all", cl::desc("Removes symbol, relocation, and debug information")); +static cl::opt<bool> StripDebug("strip-debug", + cl::desc("Removes all debug information")); static cl::opt<bool> StripSections("strip-sections", cl::desc("Remove all section headers")); static cl::opt<bool> @@ -197,6 +199,12 @@ void CopyBinary(const ELFObjectFile<ELF64LE> &ObjFile) { Obj->WriteSectionHeaders = false; } + if (StripDebug) { + RemovePred = [RemovePred](const SectionBase &Sec) { + return RemovePred(Sec) || Sec.Name.startswith(".debug"); + }; + } + Obj->removeSections(RemovePred); Obj->finalize(); WriteObjectFile(*Obj, OutputFilename.getValue()); |