summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorLibravatar Andrzej Hunt <ajrhunt@google.com>2021-03-08 17:14:42 +0000
committerLibravatar Junio C Hamano <gitster@pobox.com>2021-03-08 10:26:25 -0800
commit68b5c3aa48980bcbe2ec2c1336b615baf1935613 (patch)
tree9373bbcbfeba8ebf4e1b113a420f5f67a0ca5c1f /Makefile
parentMerged the open-eintr workaround for macOS (diff)
downloadtgif-68b5c3aa48980bcbe2ec2c1336b615baf1935613.tar.xz
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>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile6
1 files changed, 3 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index dfb0f1000f..f3dc217832 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)