diff --git a/core/clang/config.mk b/core/clang/config.mk index dfad7ec9a..90c788ccf 100644 --- a/core/clang/config.mk +++ b/core/clang/config.mk @@ -152,7 +152,7 @@ endif ADDRESS_SANITIZER_CONFIG_EXTRA_CFLAGS := -fno-omit-frame-pointer ADDRESS_SANITIZER_CONFIG_EXTRA_LDFLAGS := -Wl,-u,__asan_preinit -ADDRESS_SANITIZER_CONFIG_EXTRA_SHARED_LIBRARIES := libdl +ADDRESS_SANITIZER_CONFIG_EXTRA_SHARED_LIBRARIES := ADDRESS_SANITIZER_CONFIG_EXTRA_STATIC_LIBRARIES := libasan # This allows us to use the superset of functionality that compiler-rt diff --git a/core/clear_vars.mk b/core/clear_vars.mk index cbf6476ae..737376453 100644 --- a/core/clear_vars.mk +++ b/core/clear_vars.mk @@ -149,7 +149,6 @@ LOCAL_MODULE_OWNER:= LOCAL_CTS_TEST_PACKAGE:= LOCAL_CTS_TEST_RUNNER:= LOCAL_CLANG:= -LOCAL_DETECT_INTEGER_OVERFLOWS:= LOCAL_JAR_EXCLUDE_FILES:= LOCAL_JAR_PACKAGES:= LOCAL_JAR_EXCLUDE_PACKAGES:= diff --git a/core/config_sanitizers.mk b/core/config_sanitizers.mk index 9cff6ea33..7ebbf9ff4 100644 --- a/core/config_sanitizers.mk +++ b/core/config_sanitizers.mk @@ -41,14 +41,6 @@ endif ifneq ($(filter default-ub,$(my_sanitize)),) my_sanitize := $(CLANG_DEFAULT_UB_CHECKS) - - ifdef LOCAL_IS_HOST_MODULE - my_cflags += -fno-sanitize-recover=all - my_ldlibs += -ldl - else - my_cflags += -fsanitize-undefined-trap-on-error - my_shared_libraries += libdl - endif endif ifneq ($(my_sanitize),) @@ -56,7 +48,13 @@ ifneq ($(my_sanitize),) my_cflags += -fsanitize=$(fsanitize_arg) ifdef LOCAL_IS_HOST_MODULE + my_cflags += -fno-sanitize-recover=all my_ldflags += -fsanitize=$(fsanitize_arg) + my_ldlibs += -ldl + else + my_cflags += -fsanitize-undefined-trap-on-error + my_cflags += -ftrap-function=abort + my_shared_libraries += libdl endif endif @@ -68,7 +66,7 @@ ifneq ($(filter address,$(my_sanitize)),) ifdef LOCAL_IS_HOST_MODULE # -nodefaultlibs (provided with libc++) prevents the driver from linking # libraries needed with -fsanitize=address. http://b/18650275 (WAI) - my_ldlibs += -lm -ldl -lpthread + my_ldlibs += -lm -lpthread my_ldflags += -Wl,--no-as-needed else # ASan runtime library must be the first in the link order. @@ -81,27 +79,12 @@ ifneq ($(filter address,$(my_sanitize)),) endif ifneq ($(filter undefined,$(my_sanitize)),) - my_cflags += -fno-sanitize-recover=all - - ifdef LOCAL_IS_HOST_MODULE - my_ldlibs += -ldl - else + ifndef LOCAL_IS_HOST_MODULE $(error ubsan is not yet supported on the target) endif endif - ifneq ($(strip $(LOCAL_SANITIZE_RECOVER)),) recover_arg := $(subst $(space),$(comma),$(LOCAL_SANITIZE_RECOVER)), my_cflags += -fsanitize-recover=$(recover_arg) endif - -ifeq ($(strip $(LOCAL_DETECT_INTEGER_OVERFLOWS)),true) - ifeq ($(my_clang),true) - my_cflags += -fsanitize=signed-integer-overflow,unsigned-integer-overflow - my_cflags += -ftrap-function=abort - my_cflags += -fsanitize-undefined-trap-on-error - else - $(error $(LOCAL_MODULE): You must enable LOCAL_CLANG:=true to use LOCAL_DETECT_INTEGER_OVERFLOWS) - endif -endif