[scudo] Bump the Android API level requirement to 21 for getauxval
authorKostya Kortchinsky <kostyak@google.com>
Fri, 10 Nov 2017 19:01:17 +0000 (19:01 +0000)
committerKostya Kortchinsky <kostyak@google.com>
Fri, 10 Nov 2017 19:01:17 +0000 (19:01 +0000)
Summary:
`getauxval` was introduced in 18 & 21 depending on the architecture. Bump the
requirement to 21.

It also turns out that the NDK is finicky: NDK r13b doesn't include sys/auxv.h
when creating a standalone toolchain at API level 19 for ARM. So 18 didn't work
well with older NDKs.

Reviewers: alekseyshl

Reviewed By: alekseyshl

Subscribers: aemerson, srhines, llvm-commits, kristof.beyls

Differential Revision: https://reviews.llvm.org/D39905

llvm-svn: 317907

compiler-rt/lib/scudo/scudo_utils.cpp

index 653b6c8..fb082a4 100644 (file)
@@ -18,9 +18,9 @@
 # include <cpuid.h>
 #endif
 #if defined(__arm__) || defined(__aarch64__)
-# if SANITIZER_ANDROID && __ANDROID_API__ < 18
-// getauxval() was introduced with API level 18 on Android. Emulate it using
-// /proc/self/auxv for lower API levels.
+# if SANITIZER_ANDROID && __ANDROID_API__ < 21
+// getauxval() was introduced with API level 18 for ARM and 21 for AArch64.
+// Emulate it using /proc/self/auxv for lower API levels.
 #  include "sanitizer_common/sanitizer_posix.h"
 
 #  include <fcntl.h>