Hi,

I have some questions regarding what happens when my code calls system
calls that I do not have the sources to, which are also not in the
uClibc POSIX library LLVM bit-code.

I am trying to compile and run/test Busybox with KLEE (not much
information out there either, although the OSDI 2008 paper and a
number of other papers from other folks seem to have managed to test
Busybox with KLEE).

First off, I get this error in the final linking stage: "llvm-ld:
error: Cannot find linker input 'selinux/lib.a'"
When I check selinux/lib.a, the file is there, but it contains only a
single line with: "!<arch>"

I managed to get around that by running llvm-ld manually, excluding
all such .a files that have only that single line, and I managed to
generate an executable bitcode file.

However, when I run the bitcode, with "klee --libc=uclibc
--posix-runtime ./busybox_unstripped.bc", I get this error:

KLEE: WARNING: executable has module level assembly (ignoring)
KLEE: WARNING: calling external: syscall(54, 0, 21505, 243300752)
KLEE: WARNING: calling __user_main with extra arguments.
KLEE: WARNING: calling external: __xstat64(3, 242899896, 243343680)
klee: Executor.cpp:1001: const klee::Cell&
klee::Executor::eval(klee::KInstruction*, unsigned int,
klee::ExecutionState&) const: Assertion `vnumber != -1 && "Invalid
operand to eval(), not a value or constant!"' failed.
0  klee 0x089a79f8

I am using gcc-4.2 with LLVM 2.8, the latest version of KLEE from SVN (r150463).

Any help would be much appreciated!

Thanks,
Jiaqi
_______________________________________________
klee-dev mailing list
[email protected]
http://keeda.Stanford.EDU/mailman/listinfo/klee-dev

Reply via email to