[klee-dev] using klee without llvm-gcc?

Hongxu Chen leftcopy.chx at gmail.com
Sun Mar 17 03:20:53 GMT 2013


Dear all,

    It seems that llvm-gcc-4.2-2.9(
http://llvm.org/releases/2.9/llvm-gcc-4.2-2.9.source.tgz) suggested by the
getting started page of klee <http://klee.llvm.org/GetStarted.html> has
many problems and is treated as obsolete by the llvm community. For me, an
internal error occurred when I built it with an debug version of llvm-2.9.
So I have some questions about klee:


   1. Is it possible to build llvm *without* llvm-gcc when I have to use
   klee and uclibc? This page(http://klee.llvm.org/GetStarted.html) says
   that llvm-gcc has to be added into $PATH so that llvm would choose llvm-gcc
   other than gcc or clang to build llvm. The key difference is that llvm-gcc
   generates *libkleeRuntimeIntrinsic.bca*(and the related posix,uclibc
   runtime .bca library; this
thread<http://keeda.stanford.edu/pipermail/klee-dev/2010-August/000462.html>tells
the details ). I took a glance at the
   *configure* file of llvm but didn't figure out how it is done. So I am
   wondering whether *clang-compiled* llvm also has
   libkleeRuntimeIntrinsic.bca and the like. I came across another project
   called *klee-fp*, which uses clang and llvm-3.0; additionally they also
   use uclibc, But there is a compilation error when I built klee-fp(actually
   the error is in the compilation of stp, which is inside klee-fp source code
   folder).
   2. If those .bca files can only be generated by llvm-gcc, then is there
   any trick when I use llvm-gcc binary(
   http://llvm.org/releases/2.9/llvm-gcc4.2-2.9-x86_64-linux.tar.bz2)
   (instead of building llvm-gcc from souce) to compile llvm? There are still
   some compilation errors for me.
   3. Does klee support clang/llvm3.1 now? I checkout klee and find that
   the latest version is r176816, which is committed on  2013-03-12. And I
   also notice a log from r168798 that says `Removed fragile test which does
   not work anymore with clang/llvm 3.1.`. In addition, there are some macros
   in source code files that indicates that. For instance, there is `#if
   LLVM_VERSION_CODE >= LLVM_VERSION(3, 1)` in Line 13 of lib/Expr/Expr.cpp.
   So how can I use a newer version of llvm/clang with klee?


Many thanks,
Hongxu Chen
-------------- next part --------------
HTML attachment scrubbed and removed


More information about the klee-dev mailing list