config_sanitizers.mk revision 4ae5d4b331923ee837f0d6afd5605da0a49419c9
1##############################################
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
33