Index: src/common/android/include/link.h |
diff --git a/src/common/android/include/link.h b/src/common/android/include/link.h |
index e7ff8e2d8702b0037921b50c99b94f02758f6e2a..d923a168765664f4f537250bad6e748a6cb75f93 100644 |
--- a/src/common/android/include/link.h |
+++ b/src/common/android/include/link.h |
@@ -30,15 +30,30 @@ |
#ifndef GOOGLE_BREAKPAD_ANDROID_INCLUDE_LINK_H |
#define GOOGLE_BREAKPAD_ANDROID_INCLUDE_LINK_H |
-/* Android doesn't provide all the data-structures required in its <link.h>. |
- Provide custom version here. */ |
-#include_next <link.h> |
- |
// TODO(rmcilroy): Remove this file once the ndk is updated for other |
// architectures - crbug.com/358831 |
+ |
+// Android doesn't provide all the data-structures required in |
+// its <link.h> before release 21. Provide custom version here and |
+// rename Bionic-provided structures to avoid conflicts. |
+ |
+#if !defined(__aarch64__) && !defined(__x86_64__) && \ |
+ !(defined(__mips__) && _MIPS_SIM == _ABI64) |
+ |
+#define r_debug __bionic_r_debug |
+#define link_map __bionic_link_map |
+ |
+#endif // !defined(__aarch64__) && !defined(__x86_64__) && |
+ // !(defined(__mips__) && _MIPS_SIM == _ABI64) |
+ |
+#include_next <link.h> |
+ |
#if !defined(__aarch64__) && !defined(__x86_64__) && \ |
!(defined(__mips__) && _MIPS_SIM == _ABI64) |
+#undef r_debug |
+#undef link_map |
+ |
#ifdef __cplusplus |
extern "C" { |
#endif // __cplusplus |
@@ -66,6 +81,7 @@ struct link_map { |
} // extern "C" |
#endif // __cplusplus |
-#endif // !defined(__aarch64__) && !defined(__x86_64__) |
+#endif // !defined(__aarch64__) && !defined(__x86_64__) && |
+ // !(defined(__mips__) && _MIPS_SIM == _ABI64) |
#endif /* GOOGLE_BREAKPAD_ANDROID_INCLUDE_LINK_H */ |