|  | LOCAL_PATH := $(call my-dir) | 
|  |  | 
|  | libc_malloc_debug_src_files := \ | 
|  | BacktraceData.cpp \ | 
|  | Config.cpp \ | 
|  | DebugData.cpp \ | 
|  | debug_disable.cpp \ | 
|  | FreeTrackData.cpp \ | 
|  | GuardData.cpp \ | 
|  | malloc_debug.cpp \ | 
|  | TrackData.cpp \ | 
|  |  | 
|  | # ============================================================== | 
|  | # libc_malloc_debug_backtrace.a | 
|  | # ============================================================== | 
|  | # Used by libmemunreachable | 
|  | include $(CLEAR_VARS) | 
|  |  | 
|  | LOCAL_MODULE := libc_malloc_debug_backtrace | 
|  |  | 
|  | LOCAL_SRC_FILES := \ | 
|  | backtrace.cpp \ | 
|  | MapData.cpp \ | 
|  |  | 
|  | LOCAL_CXX_STL := libc++_static | 
|  |  | 
|  | LOCAL_STATIC_LIBRARIES += \ | 
|  | libc_logging \ | 
|  |  | 
|  | LOCAL_C_INCLUDES += bionic/libc | 
|  | LOCAL_EXPORT_C_INCLUDE_DIRS += $(LOCAL_PATH) | 
|  |  | 
|  | LOCAL_SANITIZE := never | 
|  | LOCAL_NATIVE_COVERAGE := false | 
|  |  | 
|  | # -Wno-error=format-zero-length needed for gcc to compile. | 
|  | LOCAL_CFLAGS := \ | 
|  | -Wall \ | 
|  | -Werror \ | 
|  | -Wno-error=format-zero-length \ | 
|  |  | 
|  | include $(BUILD_STATIC_LIBRARY) | 
|  |  | 
|  | # ============================================================== | 
|  | # libc_malloc_debug.so | 
|  | # ============================================================== | 
|  | include $(CLEAR_VARS) | 
|  |  | 
|  | LOCAL_MODULE := libc_malloc_debug | 
|  |  | 
|  | LOCAL_SRC_FILES := \ | 
|  | $(libc_malloc_debug_src_files) \ | 
|  |  | 
|  | LOCAL_CXX_STL := libc++_static | 
|  |  | 
|  | # Only need this for arm since libc++ uses its own unwind code that | 
|  | # doesn't mix with the other default unwind code. | 
|  | LOCAL_STATIC_LIBRARIES_arm := libunwind_llvm | 
|  |  | 
|  | LOCAL_STATIC_LIBRARIES += \ | 
|  | libc_malloc_debug_backtrace \ | 
|  | libc_logging \ | 
|  |  | 
|  | LOCAL_LDFLAGS_32 := -Wl,--version-script,$(LOCAL_PATH)/exported32.map | 
|  | LOCAL_LDFLAGS_64 := -Wl,--version-script,$(LOCAL_PATH)/exported64.map | 
|  | LOCAL_ALLOW_UNDEFINED_SYMBOLS := true | 
|  | LOCAL_C_INCLUDES += bionic/libc | 
|  |  | 
|  | LOCAL_SANITIZE := never | 
|  | LOCAL_NATIVE_COVERAGE := false | 
|  |  | 
|  | # -Wno-error=format-zero-length needed for gcc to compile. | 
|  | LOCAL_CFLAGS := \ | 
|  | -Wall \ | 
|  | -Werror \ | 
|  | -fno-stack-protector \ | 
|  | -Wno-error=format-zero-length \ | 
|  |  | 
|  | include $(BUILD_SHARED_LIBRARY) | 
|  |  | 
|  | # ============================================================== | 
|  | # Unit Tests | 
|  | # ============================================================== | 
|  | include $(CLEAR_VARS) | 
|  |  | 
|  | LOCAL_MODULE := malloc_debug_unit_tests | 
|  | LOCAL_MODULE_STEM_32 := $(LOCAL_MODULE)32 | 
|  | LOCAL_MODULE_STEM_64 := $(LOCAL_MODULE)64 | 
|  |  | 
|  | LOCAL_SRC_FILES := \ | 
|  | tests/backtrace_fake.cpp \ | 
|  | tests/log_fake.cpp \ | 
|  | tests/libc_fake.cpp \ | 
|  | tests/property_fake.cpp \ | 
|  | tests/malloc_debug_config_tests.cpp \ | 
|  | tests/malloc_debug_unit_tests.cpp \ | 
|  | $(libc_malloc_debug_src_files) \ | 
|  |  | 
|  | LOCAL_C_INCLUDES := $(LOCAL_PATH)/tests | 
|  | LOCAL_C_INCLUDES += bionic/libc | 
|  |  | 
|  | LOCAL_SHARED_LIBRARIES := libbase | 
|  |  | 
|  | LOCAL_CFLAGS := \ | 
|  | -Wall \ | 
|  | -Werror \ | 
|  | -Wno-error=format-zero-length \ | 
|  |  | 
|  | include $(BUILD_NATIVE_TEST) |