Hi all, I am trying to setup the git version of klee on my machine (running a Linux 3.14.19, x86_64, GCC 4.9.1). I had some troubles running an older klee on the coreutils binaries. I followed the tutorial at http://klee.github.io/klee/GetStarted.html to install it. To minor changes were needed: 1. Compiling LLVM 2.9 failed as an include of unistd.h was missing in one file, due to changes in GCC 2. I used the git version of STP, as the version linked in the tutorial didn't compile at all
Following the tutorial at http://klee.github.io/klee/TestingCoreutils.html, I can get Steps 1 and 2 working, but on Step 3 I get the following error: $ klee --libc=uclibc --posix-runtime ./cat.bc --version klee: main.cpp:1104: llvm::Module* linkWithUclibc(llvm::Module*, llvm::StringRef): Assertion `ft->getNumParams() == 7' failed. 0 klee 0x0000000000d0d0ef 1 klee 0x0000000000d0d664 2 libpthread.so.0 0x00007ffff7bcf200 3 libc.so.6 0x00007ffff689f967 gsignal + 55 4 libc.so.6 0x00007ffff68a0d3a abort + 362 5 libc.so.6 0x00007ffff68988ad 6 libc.so.6 0x00007ffff6898962 7 klee 0x000000000053c0bf main + 11695 8 libc.so.6 0x00007ffff688c040 __libc_start_main + 240 9 klee 0x0000000000548a42 I therefore tried to build latest git version of klee, with latest klee-uclib and current LLVM (3.5), but I can't get klee to compile: ModuleUtil.cpp:217:54: error: no member named 'begin_children' in 'llvm::object::Archive' for (object::Archive::child_iterator AI = archive->begin_children(), ~~~~~~~ ^ ModuleUtil.cpp:218:22: error: no member named 'end_children' in 'llvm::object::Archive' AE = archive->end_children(); AI != AE; ++AI) ~~~~~~~ ^ ModuleUtil.cpp:222:5: error: unknown type name 'error_code'; did you mean 'std::error_code'? error_code ec = AI->getName(memberName); ^~~~~~~~~~ std::error_code /usr/sbin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.1/../../../../include/c++/4.9.1/system_error:119:10: note: 'std::error_code' declared here struct error_code ^ ModuleUtil.cpp:222:25: error: too many arguments to function call, expected 0, have 1; did you mean 'llvm::Intrinsic::getName'? error_code ec = AI->getName(memberName); ^~~~~~~ llvm::Intrinsic::getName /home/quentin/llvm-3.5.0.src/include/llvm/IR/Intrinsics.h:48:15: note: 'llvm::Intrinsic::getName' declared here std::string getName(ID id, ArrayRef<Type*> Tys = None); ^ [...] However, I see that travis-ci reports that klee successfully builds. Any idea why it fails here? Is there any up to date page summarizing with which version of which software (llvm/gcc/stp/klee-uclibc) is klee working? Thanks in advance, Quentin _______________________________________________ klee-dev mailing list [email protected] https://mailman.ic.ac.uk/mailman/listinfo/klee-dev
