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?

llvm-svn: 205050
This commit is contained in:
David Blaikie 2014-03-28 20:45:24 +00:00
parent f15b90e07a
commit 4c1be74337
3 changed files with 13 additions and 1 deletions

View File

@ -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

View File

@ -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

View File

@ -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.