[klee-dev] KLEE failed to build cleanly with LLVM 3.3
Mark R. Tuttle
tuttle at acm.org
Wed Sep 17 20:10:45 BST 2014
I just did a "git pull" to grab the latest commit (2497fdc) and ran into
trouble building against LLVM 3.3 and running the regression tests.
*Build failed *in file src/tools/klee/main.cpp in function
KleeHandler::openOutputFile
#if LLVM_VERSION_CODE >= LLVM_VERSION(3,5)
f = new llvm::raw_fd_ostream(path.c_str(), Error, llvm::sys::fs::F_None);
#elif LLVM_VERSION_CODE >= LLVM_VERSION(3,0)
f = new llvm::raw_fd_ostream(path.c_str(), Error,
llvm::sys::fs::F_Binary);
#else
f = new llvm::raw_fd_ostream(path.c_str(), Error,
llvm::raw_fd_ostream::F_Binary);
#endif
because llvm::sys::fs::F_Binary was not defined. LLVM 3.3 source code
seems to define llvm::raw_fd_ostream::F_Binary and not
llvm::sys::fs:F_Binary. I changed the reference to LLVM version 3.0 to 3.4
and the build succeeded.
*Regression tests failed *with
Failing Tests (20):
KLEE :: Concrete/BitwiseOps.ll
KLEE :: Concrete/BoolReadWrite.ll
KLEE :: Concrete/Casts.ll
KLEE :: Concrete/CmpEq.ll
KLEE :: Concrete/ConstantExpr.ll
KLEE :: Concrete/FloatingPointOps.ll
KLEE :: Concrete/GlobalInitializers.ll
KLEE :: Concrete/GlobalUndef.ll
KLEE :: Concrete/GlobalVariable.ll
KLEE :: Concrete/ICmp.ll
KLEE :: Concrete/OneCall.ll
KLEE :: Concrete/OverlappingPhiNodes.ll
KLEE :: Concrete/Select.ll
KLEE :: Concrete/Shifts.ll
KLEE :: Concrete/SimpleStoreAndLoad.ll
KLEE :: Concrete/UnconditionalBranch.ll
KLEE :: Concrete/UnconditionalBranchWithSimplePhi.ll
KLEE :: Concrete/UnorderedPhiNodes.ll
KLEE :: Concrete/ackermann.c
KLEE :: Concrete/arith_test.ll
Expected Passes : 131
Expected Failures : 2
Unsupported Tests : 1
Unexpected Failures: 20
Each regression failure generates output of the form
Command 0 Stderr:
Traceback (most recent call last):
File "ROOT/klee/src/test/Concrete/ConcreteTest.py", line 72, in <module>
main()
File "ROOT/klee/src/test/Concrete/ConcreteTest.py", line 69, in main
testFile(test_name, opts.klee_path, opts.lli_path)
File "ROOT/klee/src/test/Concrete/ConcreteTest.py", line 26, in testFile
lliOut = subprocess.check_output(lli_cmd).decode()
AttributeError: 'module' object has no attribute 'check_output'
I'm using Python2 and ConcreteTest.py line 26 refers to Python3. Using
Python3 fails with an error pointing to the LLVM 3.3 source tree
Traceback (most recent call last):
File "ROOT/llvm/3.3/src/utils/lit/lit.py", line 4, in <module>
import lit
File "ROOT/llvm/3.3/src/utils/lit/lit/__init__.py", line 3, in <module>
from main import main
ImportError: No module named main
Any advice on how to proceed?
Thanks,
Mark
Mark Tuttle, tuttle at acm.org
-------------- next part --------------
HTML attachment scrubbed and removed
More information about the klee-dev
mailing list