On 2021.02.28 12:22, 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. > > 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 ) > > Signed-off-by: Andrzej Hunt <ajrhunt@xxxxxxxxxx> > --- > Update 'make fuzz-all' docs to reflect modern clang > > I would like to update the examples for 'make fuzz-all' to make it > easier to build fuzzers locally. > > This change should make it easier for the uninitiated to build fuzzers > locally without first having to figure out what LIB_FUZZING_ENGINE is > for. > > ATB, Andrzej Thanks for taking a look at this! This looked correct to me, but when I tried to run the fuzzers I got an error about "-fsanitize-coverage=trace-pc-guard" not being supported any longer. Looking at the LLVM 11.0.0 docs [1], I see that it recommends using "-fsanitize=fuzzer-no-link" instead (the "-no-link" is because we're also building executables that have their own main()). So we'd also want to change CFLAGS to "-fsanitize=fuzzer-no-link,address". [1]: https://releases.llvm.org/11.0.0/docs/LibFuzzer.html#fuzzer-usage