diff options
author | George Rimar <grimar@accesssoftek.com> | 2016-05-27 12:27:32 +0000 |
---|---|---|
committer | George Rimar <grimar@accesssoftek.com> | 2016-05-27 12:27:32 +0000 |
commit | c91e38c5ebf6f0cfbb29eff66c5ff6db43c3ee45 (patch) | |
tree | a14a16e1dc028011b7948857c023e27cb000c7c6 /llvm/tools | |
parent | 6af546188f56211feef79a77c74206118549c8d6 (diff) | |
download | bcm5719-llvm-c91e38c5ebf6f0cfbb29eff66c5ff6db43c3ee45.tar.gz bcm5719-llvm-c91e38c5ebf6f0cfbb29eff66c5ff6db43c3ee45.zip |
Recommit 270977 - [llvm-mc] - Teach llvm-mc to generate zlib styled compression sections.
Fix: updated clang code which was not updated by mistake.
Original commit message:
[llvm-mc] - Teach llvm-mc to generate zlib styled compression sections.
This patch is strongly based on previously reverted D20331.
(because of gnuutils < 2.26 does not support compressed debug sections in non zlib-gnu style)
Difference that this patch supports both zlib and zlib-gnu styles.
-compress-debug-sections option now supports next values:
-compress-debug-sections=zlib-gnu
-compress-debug-sections=zlib
-compress-debug-sections=none
Previously specifying -compress-debug-sections enabled zlib-gnu compression,
so anyone can put "-compress-debug-sections=zlib-gnu" to restore the behavior
that was before this patch for case when compression was enabled.
Differential revision: http://reviews.llvm.org/D20676
llvm-svn: 270987
Diffstat (limited to 'llvm/tools')
-rw-r--r-- | llvm/tools/llvm-mc/llvm-mc.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/llvm/tools/llvm-mc/llvm-mc.cpp b/llvm/tools/llvm-mc/llvm-mc.cpp index 9ea8f2ef433..d9e3798ee88 100644 --- a/llvm/tools/llvm-mc/llvm-mc.cpp +++ b/llvm/tools/llvm-mc/llvm-mc.cpp @@ -52,9 +52,18 @@ OutputFilename("o", cl::desc("Output filename"), static cl::opt<bool> ShowEncoding("show-encoding", cl::desc("Show instruction encodings")); -static cl::opt<bool> -CompressDebugSections("compress-debug-sections", - cl::desc("Compress DWARF debug sections")); +static cl::opt<DebugCompressionType> +CompressDebugSections("compress-debug-sections", cl::ValueOptional, + cl::init(DebugCompressionType::DCT_None), + cl::desc("Choose DWARF debug sections compression:"), + cl::values( + clEnumValN(DebugCompressionType::DCT_None, "none", + "No compression"), + clEnumValN(DebugCompressionType::DCT_Zlib, "zlib", + "Use zlib compression"), + clEnumValN(DebugCompressionType::DCT_ZlibGnu, "zlib-gnu", + "Use zlib-gnu compression (depricated)"), + clEnumValEnd)); static cl::opt<bool> ShowInst("show-inst", cl::desc("Show internal instruction representation")); @@ -407,13 +416,13 @@ int main(int argc, char **argv) { std::unique_ptr<MCAsmInfo> MAI(TheTarget->createMCAsmInfo(*MRI, TripleName)); assert(MAI && "Unable to create target asm info!"); - if (CompressDebugSections) { + if (CompressDebugSections != DebugCompressionType::DCT_None) { if (!zlib::isAvailable()) { errs() << ProgName << ": build tools with zlib to enable -compress-debug-sections"; return 1; } - MAI->setCompressDebugSections(true); + MAI->setCompressDebugSections(CompressDebugSections); } // FIXME: This is not pretty. MCContext has a ptr to MCObjectFileInfo and |