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. 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@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
be7935ed8b
commit
68b5c3aa48
6
Makefile
6
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)
|
||||
|
|
Loading…
Reference in New Issue