klee uclibc
v1.4
这是 uClibc for KLEE 的修改版本。有关 uClibc 的信息,请参阅自述文件。
要为 KLEE 构建 uClibc:
确保llvm-config
在您的 PATH 中(或使用--with-llvm-config
设置)。 llvm-config
使用的 LLVM 版本应与您打算在步骤 2 中使用的 C LLVM 位代码编译器使用的 LLVM 版本匹配。
确保您拥有以下 C LLVM 编译器之一
clang
内置于 LLVM 工具目录 ( llvm-config --bindir
)PATH
中clang
将按照上述顺序查找要使用的 C 编译器,并使用第一个工作编译器。
请注意,您还可以通过使用 CC 环境变量或在配置脚本中使用--with-cc
来强制使用特定的 C 编译器。
运行配置脚本。
$ ./configure --make-llvm-lib
查看所有运行选项
$ ./configure --help
默认情况下,配置脚本将把 uClibc 预构建的.config
文件添加到 uClibc 根目录中。这样做是为了让用户更容易编译。但是,可以使用 --disable-prebuilt-config 标志来阻止添加.config
文件。如果您希望创建自己的.config
可以通过在运行配置脚本后运行make menuconfig
或make config
来实现。
编译
$ make
您还可以通过运行将KLEE_CFLAGS=...
添加到上面 make 行的末尾来添加可选标志。特别是,要编译默认排除的 printf,请使用:
make KLEE_CFLAGS="-DKLEE_SYM_PRINTF"
要在优化模式下编译,请使用--enable-release
标志。警告如果您这样做,事情可能会崩溃。