summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2017-07-10 09:24:42 -0400
committerJunio C Hamano <gitster@pobox.com>2017-07-10 10:02:29 -0700
commit56b5db30d0dc1e5d20fa28cbb6e76a5a932d812f (patch)
tree59960bb4af05344a5836b2c8640ee66e5e30a4cd
parentbf1ce904b753b76ac3e20dde68777ce4625b60ed (diff)
downloadgit-56b5db30d0dc1e5d20fa28cbb6e76a5a932d812f.tar.gz
Makefile: add helper for compiling with -fsanitize
You can already build and test with ASan by doing: make CFLAGS=-fsanitize=address test but there are a few slight annoyances: 1. It's a little long to type. 2. It override your CFLAGS completely. You'd probably still want -O2, for instance. 3. It's a good idea to also turn off "recovery", which lets the program keep running after a problem is detected (with the intention of finding as many bugs as possible in a given run). Since Git's test suite should generally run without triggering any problems, it's better to abort immediately and fail the test when we do find an issue. With this patch, all of that happens automatically when you run: make SANITIZE=address test Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--Makefile4
1 files changed, 4 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index ffa6da71b7..9fb2ff3e82 100644
--- a/Makefile
+++ b/Makefile
@@ -991,6 +991,10 @@ ifdef DEVELOPER
CFLAGS += $(DEVELOPER_CFLAGS)
endif
+ifdef SANITIZE
+BASIC_CFLAGS += -fsanitize=$(SANITIZE) -fno-sanitize-recover=$(SANITIZE)
+endif
+
ifndef sysconfdir
ifeq ($(prefix),/usr)
sysconfdir = /etc