32-bit x86LLVM,KLEE安装
1
先在网上下载了LLVM2.8的代码,然后解压到
llvm-2.8文件夹
$ curl -O http://llvm.org/releases/2.8/llvm-2.8.tgz
$ tar zxvf llvm-2.8.tgz
$ cd llvm-2.8
$ ./configure --enable-optimized --enable-assertions
后半句的作用就是使用代码优化
$ make
make install
2
安装LLVM-gcc
在网上下载LLVM 2.8 release of llvm-gcc 源码
解压到llvm-gcc文件夹
然后在与llvm-gcc等同的目录下创建obj,install文件夹
进入obj文件夹下
执行配置命令
../llvm-gcc4.2-x.y.source/configure --prefix=`pwd`/../install --program-prefix=llvm --enable-llvm=$LLVMOBJDIR --enable-languages=c,c++$EXTRALANGS $TARGETOPTIONS --target=i686-pc-linux-gnu --with-tune=generic --with-arch=pentium4
说明:
--prefix=`pwd`/../install安装在了等级的install文件(刚刚创建的)
生成make $BUILDOPTIONS
然后make install
make是用来编译的,它从Makefile中读取指令,然后编译。
make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。
添加路径到 vim ~/.bash_profile
source ~/.bash_profile使路径立即生效
重新make了llvm,使用了configure -h 查看帮助
除了上面两个选项外,又重新增加了指定llvmgcc,llvmg++的绝对路径(不然make check的时候会有问题,而且编译uClibc的时候要改变$LLVMGCC到llvmgcc的绝对路径)
3.安装KLEE
3.1先安装uClibc
$ tar zxvf klee-uclibc-0.01.tgz
$ ./configure --with-llvm=path/to/llvm
$ make
这时候出现了问题,说什么找不到,主要是自动生成的Makefile的问题,这时候修改Rules.mak中tool的路径(在llvm下面,Realease+Assert/bin)
在make
3.2安装KLEE
下载
配置
./configure --with-llvm=path/to/llvm --with-uclibc=path/to/klee-uclibc --enable-posix-runtime
make
这时候的make check就可以通过了
小技巧:find /fse/ | xargs grep “llvm”
查找/fse/文件夹下面的文件,谁的内容有llvm