[compiler-rt] 17623e9 - [compiler-rt] Go back to using the 32-bit allocator for Fuchsia+RISCV64

Leonard Chan via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 15 16:29:25 PDT 2023


Author: Leonard Chan
Date: 2023-06-15T23:29:06Z
New Revision: 17623e96b5b84c0868fe6b4a1456e3d7da275c95

URL: https://github.com/llvm/llvm-project/commit/17623e96b5b84c0868fe6b4a1456e3d7da275c95
DIFF: https://github.com/llvm/llvm-project/commit/17623e96b5b84c0868fe6b4a1456e3d7da275c95.diff

LOG: [compiler-rt] Go back to using the 32-bit allocator for Fuchsia+RISCV64

Due to logic in the 64-bit allocator, the smallest allocation we can
zx_vmar_allocate is 2^37 bytes, but this is too large to allocate for
the standalone lsan allocator on a 39-bit VMA. This leads to the
zx_vmar_allocate call when initially setting up the allocator to fail.
This is similar to what android experiences on a 64-bit system with a
small vma. (See sanitizer_allocator_test.cpp).

This effectively reverts f6c4808d95221a5838e14474d95c6fe85bb1488a and
has Fuchsia use the 32-bit allocator for RISCV.

Added: 
    

Modified: 
    compiler-rt/lib/sanitizer_common/sanitizer_platform.h

Removed: 
    


################################################################################
diff  --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform.h
index ea703b7e98d44..764996e57355b 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform.h
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform.h
@@ -284,7 +284,7 @@
 // For such platforms build this code with -DSANITIZER_CAN_USE_ALLOCATOR64=0 or
 // change the definition of SANITIZER_CAN_USE_ALLOCATOR64 here.
 #ifndef SANITIZER_CAN_USE_ALLOCATOR64
-#  if (SANITIZER_RISCV64 && !SANITIZER_FUCHSIA) || SANITIZER_IOS
+#  if SANITIZER_RISCV64 || SANITIZER_IOS
 #    define SANITIZER_CAN_USE_ALLOCATOR64 0
 #  elif defined(__mips64) || defined(__hexagon__)
 #    define SANITIZER_CAN_USE_ALLOCATOR64 0


        


More information about the llvm-commits mailing list