From db36d882ed185534e125746f86373d434acdf2e6 Mon Sep 17 00:00:00 2001 From: Peter Collingbourne Date: Tue, 16 Mar 2021 11:46:31 -0700 Subject: [PATCH] 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 --- compiler-rt/lib/scudo/standalone/memtag.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler-rt/lib/scudo/standalone/memtag.h b/compiler-rt/lib/scudo/standalone/memtag.h index ea504bb..0a8a0b5 100644 --- a/compiler-rt/lib/scudo/standalone/memtag.h +++ b/compiler-rt/lib/scudo/standalone/memtag.h @@ -26,7 +26,7 @@ void setRandomTag(void *Ptr, uptr Size, uptr ExcludeMask, uptr *TaggedBegin, // 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; } -- 2.7.4