summaryrefslogtreecommitdiff
path: root/docs/fuzzing.md
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2018-07-19 15:22:18 +0200
committerPatrick Steinhardt <ps@pks.im>2018-08-03 09:50:35 +0200
commitbf3382d5448d4cb0487cc69510b6184d44e7eafc (patch)
tree5c0bd71e72b63396617c51605a3921a7bd6ee36e /docs/fuzzing.md
parent186a7ba5d71c38e96af07ec9b8dfa29661fabb5a (diff)
downloadlibgit2-bf3382d5448d4cb0487cc69510b6184d44e7eafc.tar.gz
cmake: remove need to add "-fsanitize=fuzzer" flag for fuzzers
Right now, users are being instrucded to add the "-DCMAKE_EXE_LINKER_FLAGS=-fsanitize=fuzzer" flag when they want to build our fuzzers. This is error-prone and user unfriendly. Instead, just add the flag to our fuzzers' build instructions so that it happens automatically. Adjust the README accordingly.
Diffstat (limited to 'docs/fuzzing.md')
-rw-r--r--docs/fuzzing.md10
1 files changed, 4 insertions, 6 deletions
diff --git a/docs/fuzzing.md b/docs/fuzzing.md
index 03b1affbd..9d32f8747 100644
--- a/docs/fuzzing.md
+++ b/docs/fuzzing.md
@@ -19,8 +19,7 @@ automated fuzz testing. libFuzzer only works with clang.
and [`leak`/`address,leak`](https://clang.llvm.org/docs/LeakSanitizer.html).
3. Create the cmake build environment and configure the build with the
sanitizer chosen: `CC=/usr/bin/clang-6.0 cmake
- -DBUILD_CLAR=OFF -DBUILD_FUZZERS=ON -DUSE_SANIZER=address
- -DCMAKE_EXE_LINKER_FLAGS="-fsanitize=fuzzer"
+ -DBUILD_CLAR=OFF -DBUILD_FUZZERS=ON -DUSE_SANITIZER=address
-DCMAKE_BUILD_TYPE=RelWithDebInfo ..`. Note that building the fuzzer targets
is incompatible with the tests and examples.
4. Build libgit2: `cmake --build .`
@@ -58,10 +57,9 @@ variable).
## Standalone mode
In order to ensure that there are no regresions, each fuzzer target can be run
-in a standalone mode. This can be done by passing `-DUSE_STANDALONE_FUZZERS=ON`
-to `cmake` without setting `-DCMAKE_EXE_LINKER_FLAGS`. This makes it compatible
-with gcc. This does not use the fuzzing engine, but just invokes every file in
-the chosen corpus.
+in a standalone mode. This can be done by passing `-DUSE_STANDALONE_FUZZERS=ON`.
+This makes it compatible with gcc. This does not use the fuzzing engine, but
+just invokes every file in the chosen corpus.
In order to get full coverage, though, you might want to also enable one of the
sanitizers. You might need a recent version of clang to get full support.