############################################## ## Perform configuration steps for sanitizers. ############################################## # Configure SANITIZE_HOST. ifdef LOCAL_IS_HOST_MODULE ifeq ($(SANITIZE_HOST),true) ifneq ($(strip $(LOCAL_CLANG)),false) ifneq ($(strip $(LOCAL_ADDRESS_SANITIZER)),false) LOCAL_ADDRESS_SANITIZER := true endif endif endif endif # Configure address sanitizer. ifeq ($(strip $(LOCAL_ADDRESS_SANITIZER)),true) my_clang := true # Frame pointer based unwinder in ASan requires ARM frame setup. LOCAL_ARM_MODE := arm my_cflags += $(ADDRESS_SANITIZER_CONFIG_EXTRA_CFLAGS) my_ldflags += $(ADDRESS_SANITIZER_CONFIG_EXTRA_LDFLAGS) ifdef LOCAL_IS_HOST_MODULE my_ldflags += -fsanitize=address # -nodefaultlibs (provided with libc++) prevents the driver from linking # libraries needed with -fsanitize=address. http://b/18650275 my_ldlibs += -ldl -lpthread else my_shared_libraries += $(ADDRESS_SANITIZER_CONFIG_EXTRA_SHARED_LIBRARIES) my_static_libraries += $(ADDRESS_SANITIZER_CONFIG_EXTRA_STATIC_LIBRARIES) endif endif