Makefile: update 'make fuzz-all' docs to reflect modern clang
commit68b5c3aa48980bcbe2ec2c1336b615baf1935613
authorAndrzej Hunt <ajrhunt@google.com>
Mon, 8 Mar 2021 17:14:42 +0000 (8 17:14 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 8 Mar 2021 18:26:25 +0000 (8 10:26 -0800)
tree9373bbcbfeba8ebf4e1b113a420f5f67a0ca5c1f
parentbe7935ed8bff19f481b033d0d242c5d5f239ed50
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>
Makefile