Reland "bionic_libc_platform_headers is only available when building with Bionic". am: 85ad401b77
Change-Id: I6861ad0024ede62e268d7a915eea9cc47b8a8de2
diff --git a/Android.bp b/Android.bp
index df49a01..9ce5fc7 100644
--- a/Android.bp
+++ b/Android.bp
@@ -13,19 +13,25 @@
target: {
android: {
static_libs: ["libasync_safe"],
+ header_libs: ["bionic_libc_platform_headers"],
+ product_variables: {
+ experimental_mte: {
+ cflags: ["-DANDROID_EXPERIMENTAL_MTE"],
+ },
+ },
+ },
+ linux_bionic: {
+ header_libs: ["bionic_libc_platform_headers"],
+ product_variables: {
+ experimental_mte: {
+ cflags: ["-DANDROID_EXPERIMENTAL_MTE"],
+ },
+ },
},
host: {
shared_libs: ["liblog"],
},
},
-
- header_libs: ["bionic_libc_platform_headers"],
-
- product_variables: {
- experimental_mte: {
- cflags: ["-DANDROID_EXPERIMENTAL_MTE"],
- },
- },
}
cc_library {
diff --git a/HeapWalker.cpp b/HeapWalker.cpp
index dab1029..c602c7f 100644
--- a/HeapWalker.cpp
+++ b/HeapWalker.cpp
@@ -20,7 +20,9 @@
#include <sys/mman.h>
#include <unistd.h>
+#if defined(__BIONIC__)
#include <bionic/mte.h>
+#endif
#include <map>
#include <utility>
@@ -75,7 +77,9 @@
// With MTE we set PSTATE.TCO during the access to suppress tag checks.
static uintptr_t ReadWordAtAddressUnsafe(uintptr_t word_ptr)
__attribute__((no_sanitize("address", "hwaddress"))) {
+#if defined(__BIONIC__)
ScopedDisableMTE x;
+#endif
return *reinterpret_cast<uintptr_t*>(word_ptr);
}