1. [llvm-objcopy][ELF] Implement --only-keep-debug (details)
Commit 5ad0103d8a04cb066dfae4fc20b0dfcd9413f4d4 by maskray
[llvm-objcopy][ELF] Implement --only-keep-debug
--only-keep-debug produces a debug file as the output that only
preserves contents of sections useful for debugging purposes (the
binutils implementation preserves SHT_NOTE and non-SHF_ALLOC sections),
by changing their section types to SHT_NOBITS and rewritting file
The intended use case is:
``` llvm-objcopy --only-keep-debug a a.dbg llvm-objcopy --strip-debug a
b llvm-objcopy --add-gnu-debuglink=a.dbg b
The current layout algorithm is incapable of deleting contents and
shrinking segments, so it is not suitable for implementing the
This patch adds a new algorithm which assigns sh_offset to sections
first, then modifies p_offset/p_filesz of program headers. It bears a
resemblance to lld/ELF/Writer.cpp.
Reviewed By: jhenderson, jakehehrlich
Differential Revision:
The file was removedllvm/test/tools/llvm-objcopy/ELF/basic-only-keep-debug.test
The file was modifiedllvm/tools/llvm-objcopy/ELF/Object.cpp
The file was modifiedllvm/docs/CommandGuide/llvm-objcopy.rst
The file was modifiedllvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp
The file was addedllvm/test/tools/llvm-objcopy/ELF/only-keep-debug.test
The file was modifiedllvm/tools/llvm-objcopy/
The file was modifiedllvm/tools/llvm-objcopy/ELF/Object.h