Skip to content

Commit d06ccd7

Browse files
novafacingRowan Hart
andauthored
Add note to doc about symlinks being required to work for libafl_libfuzzer runtime building (#3323)
Co-authored-by: Rowan Hart <rowanhart@microsoft.com>
1 parent 84f47bd commit d06ccd7

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

crates/libafl_libfuzzer/README.md

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ fuzzing environment or updating their harnesses.
1515

1616
## Usage
1717

18-
`libafl_libfuzzer` currently has known support for Rust, C, and C++ targets on Linux and macOS.
19-
Windows is not currently supported, as we do not currently test or develop for Windows machines, but [we will happily
20-
hear what issues you face and patch them as possible](https://github.com/AFLplusplus/LibAFL/issues/1563).
18+
`libafl_libfuzzer` currently has known support for Rust, C, and C++ targets on Linux and
19+
macOS. Windows is only supported via [usage as a standalone
20+
library](#usage-as-a-standalone-library-for-ccetc).
2121

2222
For both cases, you should install a recent **nightly** version of Rust via `rustup` and add the `llvm-tools` component
2323
with `rustup component add llvm-tools`.
@@ -80,6 +80,7 @@ CXXFLAGS='-fsanitize=fuzzer-no-link'
8080

8181
### Usage as a standalone library (for C/C++/etc.)
8282

83+
8384
The runtime for `libafl_libfuzzer` may be used standalone as a direct replacement for libFuzzer with other targets as
8485
well.
8586
To do so, [ensure a recent nightly version of Rust is installed](https://rustup.rs/), then enter the
@@ -122,6 +123,14 @@ This standalone library is _not_ compatible with Rust targets; you must instead
122123
This is due to potential symbol conflict between your harness and the fuzzer runtime, which is resolved by additional
123124
build steps provided in the `libafl_libfuzzer` crate itself.
124125

126+
#### Troubleshooting
127+
128+
To build the `libafl_libfuzzer` runtime directly, you must have working symbolic links
129+
in your LibAFL git repository. You can enable this with `git config core.symlinks true`.
130+
If you see problems related to the `Cargo.toml` file containing only a path, this is
131+
your problem. Enable symlinks and checkout or re-clone the LibAFL repository.
132+
133+
125134
## Flags
126135

127136
You can pass additional flags to the libFuzzer runtime in `cargo-fuzz` like so:

0 commit comments

Comments
 (0)