scudo: Allow TBI to be disabled on Linux with a macro.
Android's native bridge (i.e. AArch64 emulator) doesn't support TBI so
we need a way to disable TBI on Linux when targeting the native bridge.
This can also be used to test the no-TBI code path on Linux (currently
only used on Fuchsia), or make Scudo compatible with very old
(pre-commit d50240a5f6ceaf690a77b0fccb17be51cfa151c2 from June 2013)
Linux kernels that do not enable TBI.
Differential Revision: https://reviews.llvm.org/D98732
GitOrigin-RevId: db36d882ed185534e125746f86373d434acdf2e6
Change-Id: I941f267c5b18694b7ead5224c6303982e69409d9
diff --git a/standalone/memtag.h b/standalone/memtag.h
index ea504bb..0a8a0b5 100644
--- a/standalone/memtag.h
+++ b/standalone/memtag.h
@@ -26,7 +26,7 @@
// We assume that Top-Byte Ignore is enabled if the architecture supports memory
// tagging. Not all operating systems enable TBI, so we only claim architectural
// support for memory tagging if the operating system enables TBI.
-#if SCUDO_LINUX
+#if SCUDO_LINUX && !defined(SCUDO_DISABLE_TBI)
inline constexpr bool archSupportsMemoryTagging() { return true; }
#else
inline constexpr bool archSupportsMemoryTagging() { return false; }