diff --git a/core/clear_vars.mk b/core/clear_vars.mk index 6bc3632483..1357b3914a 100644 --- a/core/clear_vars.mk +++ b/core/clear_vars.mk @@ -173,6 +173,7 @@ LOCAL_NATIVE_COVERAGE := LOCAL_DPI_VARIANTS:= LOCAL_DPI_FILE_STEM:= LOCAL_SANITIZE:= +LOCAL_SANITIZE_RECOVER:= # arch specific variables LOCAL_SRC_FILES_$(TARGET_ARCH):= diff --git a/core/config_sanitizers.mk b/core/config_sanitizers.mk index 210d442409..f9dd004949 100644 --- a/core/config_sanitizers.mk +++ b/core/config_sanitizers.mk @@ -86,9 +86,17 @@ 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 $(error ubsan is not yet supported on the target) endif endif + + +ifeq ($(strip $(LOCAL_SANITIZE_RECOVER)),true) + recover_arg := $(subst $(space),$(comma),$(my_sanitize)), + my_cflags += -fsanitize-recover=$(recover_arg) +endif