[compiler-rt] r276802 - [asan] Hardcode page size 4096 on Android.

Evgeniy Stepanov via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 26 14:02:44 PDT 2016


Author: eugenis
Date: Tue Jul 26 16:02:44 2016
New Revision: 276802

URL: http://llvm.org/viewvc/llvm-project?rev=276802&view=rev
Log:
[asan] Hardcode page size 4096 on Android.

EXEC_PAGESIZE lies.
sysconf() is broken in .preinit_array.

Modified:
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc?rev=276802&r1=276801&r2=276802&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc Tue Jul 26 16:02:44 2016
@@ -801,8 +801,9 @@ bool ThreadLister::GetDirectoryEntries()
 
 uptr GetPageSize() {
 // Android post-M sysconf(_SC_PAGESIZE) crashes if called from .preinit_array.
-#if (SANITIZER_LINUX && (defined(__x86_64__) || defined(__i386__))) || \
-    SANITIZER_ANDROID
+#if SANITIZER_ANDROID
+  return 4096;
+#elif SANITIZER_LINUX && (defined(__x86_64__) || defined(__i386__))
   return EXEC_PAGESIZE;
 #else
   return sysconf(_SC_PAGESIZE);  // EXEC_PAGESIZE may not be trustworthy.




More information about the llvm-commits mailing list