blob: a1964a9a4a823205a9490e1b6aa1aa29235fe391 [file] [log] [blame]
Dan Albert4ae5d4b2014-10-31 16:23:08 -07001##############################################
2## Perform configuration steps for sanitizers.
3##############################################
4
5# Configure SANITIZE_HOST.
6ifdef LOCAL_IS_HOST_MODULE
7ifeq ($(SANITIZE_HOST),true)
8ifneq ($(strip $(LOCAL_CLANG)),false)
9ifneq ($(strip $(LOCAL_ADDRESS_SANITIZER)),false)
10 LOCAL_ADDRESS_SANITIZER := true
11endif
12endif
13endif
14endif
15
16# Configure address sanitizer.
17ifeq ($(strip $(LOCAL_ADDRESS_SANITIZER)),true)
18 my_clang := true
19 # Frame pointer based unwinder in ASan requires ARM frame setup.
20 LOCAL_ARM_MODE := arm
21 my_cflags += $(ADDRESS_SANITIZER_CONFIG_EXTRA_CFLAGS)
22 my_ldflags += $(ADDRESS_SANITIZER_CONFIG_EXTRA_LDFLAGS)
23 ifdef LOCAL_IS_HOST_MODULE
24 my_ldflags += -fsanitize=address
25 # -nodefaultlibs (provided with libc++) prevents the driver from linking
26 # libraries needed with -fsanitize=address. http://b/18650275
27 my_ldlibs += -ldl -lpthread
28 else
29 my_shared_libraries += $(ADDRESS_SANITIZER_CONFIG_EXTRA_SHARED_LIBRARIES)
30 my_static_libraries += $(ADDRESS_SANITIZER_CONFIG_EXTRA_STATIC_LIBRARIES)
31 endif
32endif