From 9afc20f110522f62f9ba7d8840c76f2db2754c69 Mon Sep 17 00:00:00 2001 From: Mitch Phillips Date: Mon, 26 Jun 2023 08:08:55 +0000 Subject: [PATCH] Merge "[MTE] [gnu make] Add memtag_globals as a sanitizer target." am: 61ce7afb21 am: 49211348ea am: c6076a3bb6 Original change: https://android-review.googlesource.com/c/platform/build/+/2625936 Bug: b/288828741 1. There was a topic that contained this build system glue, and a dependent change in external/cronet. 2. external/cronet is setup to automerge into udc-mainline-prod from aosp. 3. The build system isn't. 4. Boom because of the missing dependency. The build system glue should be low-risk, and I'd like to unbrick the build, and so merging this here on the desires of the cronet team. Follow ups to come in that bug. Change-Id: I3ab9dd553e2d83c5cffbf0744f9c298b1ce766db Merged-In: I44c239ba907a90a355c46e12afbbbe96bb2e4426 Signed-off-by: Automerger Merge Worker (cherry picked from commit c77b68f30d9ccf2ec122ad20952dff7119a14538) --- core/config_sanitizers.mk | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/core/config_sanitizers.mk b/core/config_sanitizers.mk index ebce4c2a4e..9823d7d521 100644 --- a/core/config_sanitizers.mk +++ b/core/config_sanitizers.mk @@ -176,6 +176,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 @@ -183,8 +184,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. @@ -219,11 +220,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)) @@ -240,7 +243,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)) @@ -269,6 +272,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)),)