[llvm-objcopy] Dwarf .debug section compression support (zlib, zlib-gnu).
authorPuyan Lotfi <puyan@puyan.org>
Thu, 6 Sep 2018 23:59:50 +0000 (23:59 +0000)
committerPuyan Lotfi <puyan@puyan.org>
Thu, 6 Sep 2018 23:59:50 +0000 (23:59 +0000)
commitf0954dd27597d202229a3a9f97a0c36d33c09223
tree8cf0ae489ca10c0c7f594c4c4493ab9230429748
parent2c9dede9cba3af244322947357a5b2da644c4db1
[llvm-objcopy] Dwarf .debug section compression support (zlib, zlib-gnu).

  Second Attempt. Alignment issues resolved. zlib::isAvailable() detected.

  Usage:

  llvm-objcopy --compress-debug-sections=zlib foo.o
  llvm-objcopy --compress-debug-sections=zlib-gnu foo.o

  In both cases the debug section contents is compressed with zlib. In the GNU
  style case the header is the "ZLIB" magic string followed by the uint64 big-
  endian decompressed size. In the non-GNU mode the header is the
  Elf(32|64)_Chdr.

  Decompression support is coming soon.

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

llvm-svn: 341607
llvm/test/tools/llvm-objcopy/Inputs/compress-debug-sections.yaml [new file with mode: 0644]
llvm/test/tools/llvm-objcopy/compress-debug-sections-default-gnu.test [new file with mode: 0644]
llvm/test/tools/llvm-objcopy/compress-debug-sections-default.test [new file with mode: 0644]
llvm/test/tools/llvm-objcopy/compress-debug-sections-invalid-format.test [new file with mode: 0644]
llvm/test/tools/llvm-objcopy/compress-debug-sections-zlib-gnu.test [new file with mode: 0644]
llvm/test/tools/llvm-objcopy/compress-debug-sections-zlib.test [new file with mode: 0644]
llvm/tools/llvm-objcopy/ObjcopyOpts.td
llvm/tools/llvm-objcopy/Object.cpp
llvm/tools/llvm-objcopy/Object.h
llvm/tools/llvm-objcopy/llvm-objcopy.cpp