am 908260a5: Merge "Add support of SANITIZE_TARGET=\'address coverage\' for fuzzing."

* commit '908260a56631cad51196c7b197f720bc88d7f5c7':
  Add support of SANITIZE_TARGET='address coverage' for fuzzing.
This commit is contained in:
Evgenii Stepanov 2015-09-18 20:31:54 +00:00 committed by Android Git Automerger
commit f267f7147f
6 changed files with 16 additions and 8 deletions

View File

@ -1411,7 +1411,7 @@ built_ota_tools := \
$(call intermediates-dir-for,EXECUTABLES,sqlite3,,,$(TARGET_PREFER_32_BIT))/sqlite3 $(call intermediates-dir-for,EXECUTABLES,sqlite3,,,$(TARGET_PREFER_32_BIT))/sqlite3
# We can't build static executables when SANITIZE_TARGET=address # We can't build static executables when SANITIZE_TARGET=address
ifneq (address,$(SANITIZE_TARGET)) ifeq ($(strip $(SANITIZE_TARGET)),)
built_ota_tools += \ built_ota_tools += \
$(call intermediates-dir-for,EXECUTABLES,check_prereq,,,$(TARGET_PREFER_32_BIT))/check_prereq \ $(call intermediates-dir-for,EXECUTABLES,check_prereq,,,$(TARGET_PREFER_32_BIT))/check_prereq \
$(call intermediates-dir-for,EXECUTABLES,applypatch_static,,,$(TARGET_PREFER_32_BIT))/applypatch_static \ $(call intermediates-dir-for,EXECUTABLES,applypatch_static,,,$(TARGET_PREFER_32_BIT))/applypatch_static \
@ -1554,7 +1554,7 @@ ifneq ($(OEM_THUMBPRINT_PROPERTIES),)
# OTA scripts are only interested in fingerprint related properties # OTA scripts are only interested in fingerprint related properties
$(hide) echo "oem_fingerprint_properties=$(OEM_THUMBPRINT_PROPERTIES)" >> $(zip_root)/META/misc_info.txt $(hide) echo "oem_fingerprint_properties=$(OEM_THUMBPRINT_PROPERTIES)" >> $(zip_root)/META/misc_info.txt
endif endif
ifeq ($(SANITIZE_TARGET),address) ifneq ($(strip $(SANITIZE_TARGET)),)
# We need to create userdata.img with real data because the instrumented libraries are in userdata.img. # We need to create userdata.img with real data because the instrumented libraries are in userdata.img.
$(hide) echo "userdata_img_with_data=true" >> $(zip_root)/META/misc_info.txt $(hide) echo "userdata_img_with_data=true" >> $(zip_root)/META/misc_info.txt
endif endif
@ -1593,7 +1593,7 @@ build_ota_package := true
ifeq ($(BUILD_OS),darwin) ifeq ($(BUILD_OS),darwin)
build_ota_package := false build_ota_package := false
endif endif
ifeq ($(SANITIZE_TARGET),address) ifneq ($(strip $(SANITIZE_TARGET)),)
build_ota_package := false build_ota_package := false
endif endif
ifeq ($(TARGET_PRODUCT),sdk) ifeq ($(TARGET_PRODUCT),sdk)

View File

@ -75,6 +75,14 @@ ifneq ($(filter default-ub,$(my_sanitize)),)
my_sanitize := $(CLANG_DEFAULT_UB_CHECKS) my_sanitize := $(CLANG_DEFAULT_UB_CHECKS)
endif endif
ifneq ($(filter coverage,$(my_sanitize)),)
ifeq ($(filter address,$(my_sanitize)),)
$(error $(LOCAL_PATH): $(LOCAL_MODULE): Use of 'coverage' also requires 'address')
endif
my_cflags += -fsanitize-coverage=edge,indirect-calls,8bit-counters,trace-cmp
my_sanitize := $(filter-out coverage,$(my_sanitize))
endif
ifneq ($(my_sanitize),) ifneq ($(my_sanitize),)
fsanitize_arg := $(subst $(space),$(comma),$(my_sanitize)), fsanitize_arg := $(subst $(space),$(comma),$(my_sanitize)),
my_cflags += -fsanitize=$(fsanitize_arg) my_cflags += -fsanitize=$(fsanitize_arg)

View File

@ -281,7 +281,7 @@ TARGET_OUT_GEN := $(PRODUCT_OUT)/gen
TARGET_OUT_COMMON_GEN := $(TARGET_COMMON_OUT_ROOT)/gen TARGET_OUT_COMMON_GEN := $(TARGET_COMMON_OUT_ROOT)/gen
TARGET_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_SYSTEM) TARGET_OUT := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_SYSTEM)
ifeq ($(SANITIZE_TARGET),address) ifneq ($(filter address,$(SANITIZE_TARGET)),)
target_out_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_DATA) target_out_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_DATA)
else else
target_out_shared_libraries_base := $(TARGET_OUT) target_out_shared_libraries_base := $(TARGET_OUT)
@ -338,7 +338,7 @@ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_NATIVE_TESTS := $(TARGET_OUT_DATA)/
TARGET_OUT_CACHE := $(PRODUCT_OUT)/cache TARGET_OUT_CACHE := $(PRODUCT_OUT)/cache
TARGET_OUT_VENDOR := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR) TARGET_OUT_VENDOR := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_VENDOR)
ifeq ($(SANITIZE_TARGET),address) ifneq ($(filter address,$(SANITIZE_TARGET)),)
target_out_vendor_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_DATA)/vendor target_out_vendor_shared_libraries_base := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_DATA)/vendor
else else
target_out_vendor_shared_libraries_base := $(TARGET_OUT_VENDOR) target_out_vendor_shared_libraries_base := $(TARGET_OUT_VENDOR)

View File

@ -7,7 +7,7 @@
# LOCAL_MODULE_STEM_64 # LOCAL_MODULE_STEM_64
my_skip_this_target := my_skip_this_target :=
ifeq (address,$(strip $(SANITIZE_TARGET))) ifneq ($(filter address,$(SANITIZE_TARGET)),)
ifeq (true,$(LOCAL_FORCE_STATIC_EXECUTABLE)) ifeq (true,$(LOCAL_FORCE_STATIC_EXECUTABLE))
my_skip_this_target := true my_skip_this_target := true
else ifeq (false, $(LOCAL_CLANG)) else ifeq (false, $(LOCAL_CLANG))

View File

@ -7,7 +7,7 @@ ifdef LOCAL_SDK_VERSION
$(error $(LOCAL_PATH): $(LOCAL_MODULE): NDK fuzz tests are not supported.) $(error $(LOCAL_PATH): $(LOCAL_MODULE): NDK fuzz tests are not supported.)
endif endif
LOCAL_CFLAGS += -fsanitize-coverage=edge,indirect-calls,8bit-counters LOCAL_CFLAGS += -fsanitize-coverage=edge,indirect-calls,8bit-counters,trace-cmp
LOCAL_STATIC_LIBRARIES += libLLVMFuzzer LOCAL_STATIC_LIBRARIES += libLLVMFuzzer
ifdef LOCAL_MODULE_PATH ifdef LOCAL_MODULE_PATH

View File

@ -3,7 +3,7 @@
## Common flags for host fuzz tests are added. ## Common flags for host fuzz tests are added.
################################################ ################################################
LOCAL_CFLAGS += -fsanitize-coverage=edge,indirect-calls,8bit-counters LOCAL_CFLAGS += -fsanitize-coverage=edge,indirect-calls,8bit-counters,trace-cmp
LOCAL_STATIC_LIBRARIES += libLLVMFuzzer LOCAL_STATIC_LIBRARIES += libLLVMFuzzer
include $(BUILD_HOST_EXECUTABLE) include $(BUILD_HOST_EXECUTABLE)