]> git.neil.brown.name Git - git.git/commitdiff
Makefile: add helper for compiling with -fsanitize
authorJeff King <peff@peff.net>
Mon, 10 Jul 2017 13:24:42 +0000 (09:24 -0400)
committerJunio C Hamano <gitster@pobox.com>
Mon, 10 Jul 2017 17:02:29 +0000 (10:02 -0700)
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>
Makefile

index ffa6da71b7ccaecd6a1fb449b03d3002d5e15ea8..9fb2ff3e82b6bf11313328c309bead8e9792f40d 100644 (file)
--- 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