Merge "[MTE] [gnu make] Add memtag_globals as a sanitizer target." am: 61ce7afb21

Original change: https://android-review.googlesource.com/c/platform/build/+/2625936

Change-Id: I02a301fb3f60fd35bf63e3d7c7f0eb0451e5a876
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Mitch Phillips
2023-06-26 06:38:11 +00:00
committed by Automerger Merge Worker

View File

@@ -180,6 +180,7 @@ endif
ifneq ($(filter address,$(my_sanitize)),)
my_sanitize := $(filter-out cfi,$(my_sanitize))
my_sanitize := $(filter-out memtag_stack,$(my_sanitize))
my_sanitize := $(filter-out memtag_globals,$(my_sanitize))
my_sanitize := $(filter-out memtag_heap,$(my_sanitize))
my_sanitize_diag := $(filter-out cfi,$(my_sanitize_diag))
endif
@@ -187,8 +188,8 @@ endif
# Disable memtag for host targets. Host executables in AndroidMk files are
# deprecated, but some partners still have them floating around.
ifdef LOCAL_IS_HOST_MODULE
my_sanitize := $(filter-out memtag_heap memtag_stack,$(my_sanitize))
my_sanitize_diag := $(filter-out memtag_heap memtag_stack,$(my_sanitize_diag))
my_sanitize := $(filter-out memtag_heap memtag_stack memtag_globals,$(my_sanitize))
my_sanitize_diag := $(filter-out memtag_heap memtag_stack memtag_globals,$(my_sanitize_diag))
endif
# Disable sanitizers which need the UBSan runtime for host targets.
@@ -223,11 +224,13 @@ ifneq ($(filter arm x86 x86_64,$(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)),)
my_sanitize := $(filter-out hwaddress,$(my_sanitize))
my_sanitize := $(filter-out memtag_heap,$(my_sanitize))
my_sanitize := $(filter-out memtag_stack,$(my_sanitize))
my_sanitize := $(filter-out memtag_globals,$(my_sanitize))
endif
ifneq ($(filter hwaddress,$(my_sanitize)),)
my_sanitize := $(filter-out address,$(my_sanitize))
my_sanitize := $(filter-out memtag_stack,$(my_sanitize))
my_sanitize := $(filter-out memtag_globals,$(my_sanitize))
my_sanitize := $(filter-out memtag_heap,$(my_sanitize))
my_sanitize := $(filter-out thread,$(my_sanitize))
my_sanitize := $(filter-out cfi,$(my_sanitize))
@@ -244,7 +247,7 @@ ifneq ($(filter hwaddress,$(my_sanitize)),)
endif
endif
ifneq ($(filter memtag_heap memtag_stack,$(my_sanitize)),)
ifneq ($(filter memtag_heap memtag_stack memtag_globals,$(my_sanitize)),)
ifneq ($(filter memtag_heap,$(my_sanitize_diag)),)
my_cflags += -fsanitize-memtag-mode=sync
my_sanitize_diag := $(filter-out memtag_heap,$(my_sanitize_diag))
@@ -273,6 +276,14 @@ ifneq ($(filter memtag_stack,$(my_sanitize)),)
my_sanitize := $(filter-out memtag_stack,$(my_sanitize))
endif
ifneq ($(filter memtag_globals,$(my_sanitize)),)
my_cflags += -fsanitize=memtag-globals
# TODO(mitchp): For now, enable memtag-heap with memtag-globals because the
# linker isn't new enough
# (https://reviews.llvm.org/differential/changeset/?ref=4243566).
my_sanitize := $(filter-out memtag_globals,$(my_sanitize))
endif
# TSAN is not supported on 32-bit architectures. For non-multilib cases, make
# its use an error. For multilib cases, don't use it for the 32-bit case.
ifneq ($(filter thread,$(my_sanitize)),)