Use -target-feature for MTE
Instead of setting -march, use clang's -target-feature functionality
to enable MTE. Some projects set -march which may conflict with MTE's
usage. Using -target-feature to enable MTE removes any clang command
line ordering issues.
History:
* Originally submitted as 3340cf27f76a94b1536e66e5847b11e334c97b85
* reverted in 32721f125b1ed0db3fbd434c2412dcf1f1e146e9 due to
bug 371029823
* Prematurely resubmitted as fe67d8f1f22106bcc6634652ea1a5303e406f639
and then subsequently reverted in
476da833e12179d31f6a301ad65bf45c63a28818 as the fix for bug 371029823
had not yet landed.
* Reapplied as f2c78addd495210722e8138c67444dd5419e9b7b and
subsequently reverted in f274f7cd26901b89d2b141c0df89e4a443e761ba
due to bug 399925046 (build timeout issue), which was resolved in
bug 401292715 (re-client upgrade).
Let's try again. 4th time's the charm.
Bug: 366222162
Test: compiles and boots
Change-Id: Ic7d436d1167f588e0f2a8badecfc9ea196c45bb5
diff --git a/core/config_sanitizers.mk b/core/config_sanitizers.mk
index ab2d5c1..c0f2c68 100644
--- a/core/config_sanitizers.mk
+++ b/core/config_sanitizers.mk
@@ -284,9 +284,9 @@
ifneq ($(filter memtag_stack,$(my_sanitize)),)
my_cflags += -fsanitize=memtag-stack
my_ldflags += -fsanitize=memtag-stack
- my_cflags += -march=armv8a+memtag
- my_ldflags += -march=armv8a+memtag
- my_asflags += -march=armv8a+memtag
+ my_cflags += -Xclang -target-feature -Xclang +mte
+ my_ldflags += -Xclang -target-feature -Xclang +mte
+ my_asflags += -Xclang -target-feature -Xclang +mte
my_sanitize := $(filter-out memtag_stack,$(my_sanitize))
endif