[compiler-rt] [asan] Add config for AArch64 Linux with 39-bit VA. (PR #170929)

Eli Friedman via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 5 13:57:28 PST 2025


https://github.com/efriedma-quic updated https://github.com/llvm/llvm-project/pull/170929

>From 6782f71d4bb1bbfedcb82e89a9a61a92691985e2 Mon Sep 17 00:00:00 2001
From: Eli Friedman <efriedma at qti.qualcomm.com>
Date: Fri, 5 Dec 2025 13:41:24 -0800
Subject: [PATCH 1/2] [asan] Add config for AArch64 Linux with 39-bit VA.

This is leveraging work which has already been done for Android, which
ships 39-bit VA kernels, and extending it to other embedded Linux
targets.

(SANITIZER_AARCH64_39BIT_VA was added in 58c8f57681.)
---
 compiler-rt/lib/asan/asan_allocator.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/compiler-rt/lib/asan/asan_allocator.h b/compiler-rt/lib/asan/asan_allocator.h
index fdf456473fb02..e2ec877696c0a 100644
--- a/compiler-rt/lib/asan/asan_allocator.h
+++ b/compiler-rt/lib/asan/asan_allocator.h
@@ -200,7 +200,7 @@ const uptr kAllocatorSpace = ~(uptr)0;
 #    if defined(__powerpc64__)
 const uptr kAllocatorSize  =  0x20000000000ULL;  // 2T.
 typedef DefaultSizeClassMap SizeClassMap;
-#    elif defined(__aarch64__) && SANITIZER_ANDROID
+#    elif defined(__aarch64__) && (SANITIZER_ANDROID || defined(SANITIZER_AARCH64_39BIT_VA))
 // Android needs to support 39, 42 and 48 bit VMA.
 const uptr kAllocatorSize  =  0x2000000000ULL;  // 128G.
 typedef VeryCompactSizeClassMap SizeClassMap;

>From 96d9617156b2466cc5dd31977d249895020baee5 Mon Sep 17 00:00:00 2001
From: Eli Friedman <efriedma at qti.qualcomm.com>
Date: Fri, 5 Dec 2025 13:57:09 -0800
Subject: [PATCH 2/2] Fix formatting

---
 compiler-rt/lib/asan/asan_allocator.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/compiler-rt/lib/asan/asan_allocator.h b/compiler-rt/lib/asan/asan_allocator.h
index e2ec877696c0a..7798137246cf4 100644
--- a/compiler-rt/lib/asan/asan_allocator.h
+++ b/compiler-rt/lib/asan/asan_allocator.h
@@ -200,7 +200,8 @@ const uptr kAllocatorSpace = ~(uptr)0;
 #    if defined(__powerpc64__)
 const uptr kAllocatorSize  =  0x20000000000ULL;  // 2T.
 typedef DefaultSizeClassMap SizeClassMap;
-#    elif defined(__aarch64__) && (SANITIZER_ANDROID || defined(SANITIZER_AARCH64_39BIT_VA))
+#    elif defined(__aarch64__) && \
+        (SANITIZER_ANDROID || defined(SANITIZER_AARCH64_39BIT_VA))
 // Android needs to support 39, 42 and 48 bit VMA.
 const uptr kAllocatorSize  =  0x2000000000ULL;  // 128G.
 typedef VeryCompactSizeClassMap SizeClassMap;



More information about the llvm-commits mailing list