| Dan Albert | 4ae5d4b | 2014-10-31 16:23:08 -0700 | [diff] [blame] | 1 | ############################################## |
| 2 | ## Perform configuration steps for sanitizers. |
| 3 | ############################################## |
| 4 | |
| 5 | # Configure SANITIZE_HOST. |
| 6 | ifdef LOCAL_IS_HOST_MODULE |
| 7 | ifeq ($(SANITIZE_HOST),true) |
| 8 | ifneq ($(strip $(LOCAL_CLANG)),false) |
| 9 | ifneq ($(strip $(LOCAL_ADDRESS_SANITIZER)),false) |
| 10 | LOCAL_ADDRESS_SANITIZER := true |
| 11 | endif |
| 12 | endif |
| 13 | endif |
| 14 | endif |
| 15 | |
| 16 | # Configure address sanitizer. |
| 17 | ifeq ($(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 |
| 32 | endif |