[klee-dev] uclibc status

Daniel Liew daniel.liew at imperial.ac.uk
Fri Nov 8 15:46:45 GMT 2013


> Sounds great. Which kernel version do you have?
> It works quite well for a current Ubuntu 13.04 with a 3.8.0 kernel.

I'm running Arch Linux with kernel 3.11.6

> There are currently two additional branches:
> a) klee_monolithic: which is based on the 0_9_29 tag and contains the original KLEE modifications.
> b) klee_monolithic_llvm33: which contains in addition modifications for LLVM 3.3 and more recent kernel versions (and is rebased to the the 0_9_29 branch) plus additional back ports.

Great. I just made a pull request to klee_monolithic with some fixes
for my system ( https://github.com/ccadar/klee-uclibc/pull/1 ). They
need testing on older systems before being accepted.

>> Would you also be able to recommend one or more starting points for
>> uclibc versions? I'd like to get the old uclibc (monolithic) up and
>> running on my machine with llvm-gcc so I can fix some outstanding
>> issues on llvm2.9, then I'd like start experimenting with LLVM3.3 so I
>> can see what needs working on (I'm very keen for us to move to
>> clang... I'm not a fan of llvm-gcc).
> List of steps I use to get it up and running (but for LLVM 3.3 and the klee_monolithic_llvm33 branch):
>
> 1. Compile or install dragonegg [2]
> 2. Make sure llvm-config is in your executables path
> 3. run ./configure —with-llvm=build_directory_of_llvm
> 4. configure your uclibc
>    a) make menuconfig (install libncurses5-dev on Ubuntu)
>    b) make sure you set your architecture accordingly
>    c) make sure the configuration points to your kernel headers: “Target Architecture Feature and Options” -> "Linux kernel header location" (on Ubuntu e.g. /usr/include/x86_64-linux-gnu/ )
>    d) compile it with make (if you compiled dragon egg under 1. than provide that directory as an argument with make DRAGONEGGDIR=/path/to/it )
>
> Dragonegg is currently needed as not all compiler flags are supported by clang but works quite stable.

Oh... I've not really played with dragonegg. I would prefer clang
seeing as that's what I would like to use when building with LLVM3.3.
I know the KLEE-CL version of uclibc works with clang (
git://git.pcc.me.uk/~peter/klee-uclibc.git  )

Thanks for the instructions. I'll investigate the
klee_monolithic_llvm33 branch when I have time.

Thanks,
Dan Liew.




More information about the klee-dev mailing list