On 2021.03.08 17:14, Andrzej Hunt via GitGitGadget wrote: > From: Andrzej Hunt <ajrhunt@xxxxxxxxxx> > > Clang no longer produces a libFuzzer.a. Instead, you can include > libFuzzer by using -fsanitize=fuzzer. Therefore we should use that in > the example command for building fuzzers. > > We also add -fsanitize=fuzzer-no-link to the CFLAGS to ensure that all > the required instrumentation is added when compiling git [1], and remove > -fsanitize-coverage=trace-pc-guard as it is deprecated. > > I happen to have tested with LLVM 11 - however -fsanitize=fuzzer appears > to work in a wide range of reasonably modern clangs. > > (On my system: what used to be libFuzzer.a now lives under the following > path, which is tricky albeit not impossible for a novice such as myself > to find: > /usr/lib64/clang/11.0.0/lib/linux/libclang_rt.fuzzer-x86_64.a ) > > [1] https://releases.llvm.org/11.0.0/docs/LibFuzzer.html#fuzzer-usage > > Signed-off-by: Andrzej Hunt <ajrhunt@xxxxxxxxxx> > --- > Update 'make fuzz-all' docs to reflect modern clang > > This version of the patch fixes the commit message as per Junio's > feedback. Thank you! > > Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-889%2Fahunt%2Ffuzz-docs-v3 > Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-889/ahunt/fuzz-docs-v3 > Pull-Request: https://github.com/gitgitgadget/git/pull/889 > > Range-diff vs v2: > > 1: f5b5a11966ca ! 1: bc0d8b615410 Update 'make fuzz-all' docs to reflect modern clang > @@ Metadata > Author: Andrzej Hunt <ajrhunt@xxxxxxxxxx> > > ## Commit message ## > - Update 'make fuzz-all' docs to reflect modern clang > + Makefile: update 'make fuzz-all' docs to reflect modern clang > > - Clang no longer produces a libFuzzer.a, instead you can include > - libFuzzer by using -fsanitize=fuzzer. Therefore we should use > - that in the example command for building fuzzers. > + Clang no longer produces a libFuzzer.a. Instead, you can include > + libFuzzer by using -fsanitize=fuzzer. Therefore we should use that in > + the example command for building fuzzers. > > - We also add -fsanitize=fuzzer-no-link to ensure that all the required > - instrumentation is added when compiling git [1], and remove > + We also add -fsanitize=fuzzer-no-link to the CFLAGS to ensure that all > + the required instrumentation is added when compiling git [1], and remove > -fsanitize-coverage=trace-pc-guard as it is deprecated. > > - I happen to have tested with LLVM 11 - however -fsanitize=fuzzer appears to > - work in a wide range of reasonably modern clangs. > + I happen to have tested with LLVM 11 - however -fsanitize=fuzzer appears > + to work in a wide range of reasonably modern clangs. > > - (On my system: what used to be libFuzzer.a now lives under the following path, > - which is tricky albeit not impossible for a novice such as myself to find: > + (On my system: what used to be libFuzzer.a now lives under the following > + path, which is tricky albeit not impossible for a novice such as myself > + to find: > /usr/lib64/clang/11.0.0/lib/linux/libclang_rt.fuzzer-x86_64.a ) > > [1] https://releases.llvm.org/11.0.0/docs/LibFuzzer.html#fuzzer-usage > > > Makefile | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/Makefile b/Makefile > index dfb0f1000fa3..f3dc2178324e 100644 > --- a/Makefile > +++ b/Makefile > @@ -3299,11 +3299,11 @@ cover_db_html: cover_db > # are not necessarily appropriate for general builds, and that vary greatly > # depending on the compiler version used. > # > -# An example command to build against libFuzzer from LLVM 4.0.0: > +# An example command to build against libFuzzer from LLVM 11.0.0: > # > # make CC=clang CXX=clang++ \ > -# CFLAGS="-fsanitize-coverage=trace-pc-guard -fsanitize=address" \ > -# LIB_FUZZING_ENGINE=/usr/lib/llvm-4.0/lib/libFuzzer.a \ > +# CFLAGS="-fsanitize=fuzzer-no-link,address" \ > +# LIB_FUZZING_ENGINE="-fsanitize=fuzzer" \ > # fuzz-all > # > FUZZ_CXXFLAGS ?= $(CFLAGS) > > base-commit: be7935ed8bff19f481b033d0d242c5d5f239ed50 > -- > gitgitgadget This version looks good to me, although you may also want to make the changes Junio suggested regarding LIB_FUZZING_ENGINE. Thanks!