From 3d20a3974c62a284325f8e6f12b7fbb50b4607b7 Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Sat, 28 Jul 2018 11:17:07 +0100 Subject: Support ASAN and UBSAN in Makefiles --- Makefile | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 3109a771c..359b89b5b 100644 --- a/Makefile +++ b/Makefile @@ -575,6 +575,25 @@ CXXFLAGS += -DNETSURF_HOMEPAGE=\"$(NETSURF_HOMEPAGE)\" CFLAGS += -DNETSURF_LOG_LEVEL=$(NETSURF_LOG_LEVEL) CXXFLAGS += -DNETSURF_LOG_LEVEL=$(NETSURF_LOG_LEVEL) +# If we're building the sanitizer goal, override things +ifneq ($(filter-out sanitize,$(MAKECMDGOALS)),$(MAKECMDGOALS)) +override NETSURF_USE_SANITIZER := YES +override NETSURF_RECOVER_SANITIZERS := NO +endif + +# If we're going to use the sanitizer set it up +ifeq ($(NETSURF_USE_SANITIZER),YES) +SAN_FLAGS := -fsanitize=address -fsanitize=undefined +ifeq ($(NETSURF_RECOVER_SANITIZERS),NO) +SAN_FLAGS += -fno-sanitize-recover +endif +else +SAN_FLAGS := +endif +CFLAGS += $(SAN_FLAGS) +CXXFLAGS += $(SAN_FLAGS) +LDFLAGS += $(SAN_FLAGS) + # and the logging filter CFLAGS += -DNETSURF_BUILTIN_LOG_FILTER=\"$(NETSURF_BUILTIN_LOG_FILTER)\" CXXFLAGS += -DNETSURF_BUILTIN_LOG_FILTER=\"$(NETSURF_BUILTIN_LOG_FILTER)\" -- cgit v1.2.3