summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2014-03-28 20:45:24 +0000
committerDavid Blaikie <dblaikie@gmail.com>2014-03-28 20:45:24 +0000
commit4a9c2585ab60fe9f0e40df8f2aeaf55d34ce77ee (patch)
tree208a5ccb9ac6cbb80c94645904c58e04cd6a2da2
parent0e11c017a9bd47de37eeb6a0bc495c9b0bcc5461 (diff)
downloadllvm-4a9c2585ab60fe9f0e40df8f2aeaf55d34ce77ee.tar.gz
llvm-4a9c2585ab60fe9f0e40df8f2aeaf55d34ce77ee.tar.bz2
llvm-4a9c2585ab60fe9f0e40df8f2aeaf55d34ce77ee.tar.xz
llvm-mc: error when -compress-debug-sections is requested and zlib is not linked
This is a bit of a stab in the dark, since I have zlib on my machine. Just going to bounce it off the bots & see if it sticks. Do we have some convention for negative REQUIRES: checks? Or do I just need to add a feature like I've done here? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205050 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/MC/ELF/nocompression.s5
-rw-r--r--test/lit.cfg2
-rw-r--r--tools/llvm-mc/llvm-mc.cpp7
3 files changed, 13 insertions, 1 deletions
diff --git a/test/MC/ELF/nocompression.s b/test/MC/ELF/nocompression.s
new file mode 100644
index 0000000000..c584e181df
--- /dev/null
+++ b/test/MC/ELF/nocompression.s
@@ -0,0 +1,5 @@
+// RUN: llvm-mc -filetype=obj -compress-debug-sections -triple x86_64-pc-linux-gnu %s -o - 2>&1 | FileCheck %s
+
+// REQUIRES: nozlib
+
+// CHECK: llvm-mc: build tools with zlib to enable -compress-debug-sections
diff --git a/test/lit.cfg b/test/lit.cfg
index ec5b52ef47..df1850a663 100644
--- a/test/lit.cfg
+++ b/test/lit.cfg
@@ -297,6 +297,8 @@ if not 'hexagon' in config.target_triple:
if config.have_zlib == "1":
config.available_features.add("zlib")
+else:
+ config.available_features.add("nozlib")
# Native compilation: host arch == target arch
# FIXME: Consider cases that target can be executed
diff --git a/tools/llvm-mc/llvm-mc.cpp b/tools/llvm-mc/llvm-mc.cpp
index b2e7a81488..dfa347e764 100644
--- a/tools/llvm-mc/llvm-mc.cpp
+++ b/tools/llvm-mc/llvm-mc.cpp
@@ -384,8 +384,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) {
+ if (!zlib::isAvailable()) {
+ errs() << ProgName << ": build tools with zlib to enable -compress-debug-sections";
+ return 1;
+ }
MAI->setCompressDebugSections(true);
+ }
// FIXME: This is not pretty. MCContext has a ptr to MCObjectFileInfo and
// MCObjectFileInfo needs a MCContext reference in order to initialize itself.