32 lines
1.7 KiB
Markdown
32 lines
1.7 KiB
Markdown
# LibAFL CC
|
|
|
|
LibAFL CC provides the functionalities to write compiler wrappers for LibAFL, by providing to the user a set of compiler extensions useful for instrumentation.
|
|
|
|
The online documentation for this crate is available [here](https://docs.rs/crate/libafl_cc/latest).
|
|
|
|
Currently, we support LLVM version 11 up to 18, but other versions may work.
|
|
To install LLVM, use the official [download page](https://releases.llvm.org/download.html).
|
|
|
|
The LLVM tools (including clang, clang++) are needed (newer than LLVM 11.0.0 up to LLVM 17.0.0)
|
|
- When compiling LLVM tools on Windows, you can try to compile LLVM with the below commands (tested on LLVM 16.0.6).
|
|
- NOTE: This assumes you have Visual Studio 17 2022 and MSVC v143 Tools installed under "Individual Components"
|
|
```sh
|
|
## Start x64 Native Tools Command Prompt for VS 2022
|
|
RUN AS ADMINISTRATOR: %comspec% /k "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat"
|
|
|
|
## Cloning the LLVM project repo
|
|
git clone https://github.com/llvm/llvm-project.git llvm
|
|
|
|
## Building Clang project first, the CMAKE_INSTALL_PREFIX is important here, make sure to select a folder path that doesn't contain any spaces in it
|
|
$ cmake -S llvm\llvm -B build -DLLVM_ENABLE_PROJECTS=clang -DLLVM_TARGETS_TO_BUILD=X86 -Thost=x64 -DCMAKE_INSTALL_PREFIX=C:\llvm
|
|
$ cd build
|
|
$ cmake --build . --target install --config release
|
|
|
|
## Building lld project first, the CMAKE_INSTALL_PREFIX is important here, make sure to select a folder path that doesn't contain any spaces in it
|
|
## Changing back to the previous directory
|
|
$ cd ..
|
|
$ cmake -S llvm\llvm -B build -DLLVM_ENABLE_PROJECTS=lld -DLLVM_TARGETS_TO_BUILD=X86 -Thost=x64 -DCMAKE_INSTALL_PREFIX=C:\llvm
|
|
$ cd build
|
|
$ cmake --build . --target install --config release
|
|
```
|