summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2017-07-10 13:24:42 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-07-10 17:02:29 (GMT)
commit56b5db30d0dc1e5d20fa28cbb6e76a5a932d812f (patch)
tree59960bb4af05344a5836b2c8640ee66e5e30a4cd /Makefile
parentbf1ce904b753b76ac3e20dde68777ce4625b60ed (diff)
downloadgit-56b5db30d0dc1e5d20fa28cbb6e76a5a932d812f.zip
git-56b5db30d0dc1e5d20fa28cbb6e76a5a932d812f.tar.gz
git-56b5db30d0dc1e5d20fa28cbb6e76a5a932d812f.tar.bz2
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>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile4
1 files changed, 4 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index ffa6da7..9fb2ff3 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