diff --git a/src/common/android/include/link.h b/src/common/android/include/link.h index e7ff8e2d..75e3bb2c 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 . - Provide custom version here. */ -#include_next - // 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 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 + +#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 */