diff options
author | Patrick Steinhardt <ps@pks.im> | 2018-07-19 15:22:18 +0200 |
---|---|---|
committer | Patrick Steinhardt <ps@pks.im> | 2018-08-03 09:50:35 +0200 |
commit | bf3382d5448d4cb0487cc69510b6184d44e7eafc (patch) | |
tree | 5c0bd71e72b63396617c51605a3921a7bd6ee36e /docs/fuzzing.md | |
parent | 186a7ba5d71c38e96af07ec9b8dfa29661fabb5a (diff) | |
download | libgit2-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.md | 10 |
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. |