Don't define |r_debug| and |link_map| on Android releases 21 and later

NDKs for Android 21 and later have the data structures |r_debug| and
|link_map| defined in their header files. Defining them multiple times
generates a compiler error.

This patch protects both data structures from definition on Android 21
and later.

BUG=629088
R=rmcilroy@chromium.org

Review URL: https://codereview.chromium.org/2156173002 .

Patch from Thomas Zimmermann <tzimmermann@mozilla.com>.
This commit is contained in:
Thomas Zimmermann 2016-07-19 17:00:51 +01:00 committed by Ross McIlroy
parent 41b91d064e
commit 0ebdc4a10a

View file

@ -30,10 +30,18 @@
#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. */
// 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.
#define r_debug __bionic_r_debug
#define link_map __bionic_link_map
#include_next <link.h>
#undef r_debug
#undef link_map
// TODO(rmcilroy): Remove this file once the ndk is updated for other
// architectures - crbug.com/358831
#if !defined(__aarch64__) && !defined(__x86_64__) && \