Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(198)

Side by Side Diff: src/common/android/include/link.h

Issue 2156173002: Don't define |r_debug| and |link_map| on Android releases 21 and later Base URL: https://chromium.googlesource.com/breakpad/breakpad.git@master
Patch Set: Don't redefine |r_debug| and |link_map| on Android releases 21 and later Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, Google Inc. 1 // Copyright (c) 2012, Google Inc.
2 // All rights reserved. 2 // All rights reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // * Redistributions of source code must retain the above copyright 8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer. 9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above 10 // * Redistributions in binary form must reproduce the above
(...skipping 12 matching lines...) Expand all
23 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 29
30 #ifndef GOOGLE_BREAKPAD_ANDROID_INCLUDE_LINK_H 30 #ifndef GOOGLE_BREAKPAD_ANDROID_INCLUDE_LINK_H
31 #define GOOGLE_BREAKPAD_ANDROID_INCLUDE_LINK_H 31 #define GOOGLE_BREAKPAD_ANDROID_INCLUDE_LINK_H
32 32
33 /* Android doesn't provide all the data-structures required in its <link.h>.
34 Provide custom version here. */
35 #include_next <link.h>
36
37 // TODO(rmcilroy): Remove this file once the ndk is updated for other 33 // TODO(rmcilroy): Remove this file once the ndk is updated for other
38 // architectures - crbug.com/358831 34 // architectures - crbug.com/358831
39 #if !defined(__aarch64__) && !defined(__x86_64__) && \ 35 #if !defined(__aarch64__) && !defined(__x86_64__) && \
40 !(defined(__mips__) && _MIPS_SIM == _ABI64) 36 !(defined(__mips__) && _MIPS_SIM == _ABI64)
41 37
42 #ifdef __cplusplus 38 #ifdef __cplusplus
43 extern "C" { 39 extern "C" {
44 #endif // __cplusplus 40 #endif // __cplusplus
45 41
42 // Android doesn't provide all the data-structures required in
43 // its <link.h> before release 21. Provide custom version here and
44 // rename Bionic-provided structures to avoid conflicts.
45
46 #define r_debug __bionic_r_debug
47 #define link_map __bionic_link_map
48
49 #include_next <link.h>
50
51 #undef r_debug
52 #undef link_map
53
46 struct r_debug { 54 struct r_debug {
47 int r_version; 55 int r_version;
48 struct link_map* r_map; 56 struct link_map* r_map;
49 ElfW(Addr) r_brk; 57 ElfW(Addr) r_brk;
50 enum { 58 enum {
51 RT_CONSISTENT, 59 RT_CONSISTENT,
52 RT_ADD, 60 RT_ADD,
53 RT_DELETE } r_state; 61 RT_DELETE } r_state;
54 ElfW(Addr) r_ldbase; 62 ElfW(Addr) r_ldbase;
55 }; 63 };
56 64
57 struct link_map { 65 struct link_map {
58 ElfW(Addr) l_addr; 66 ElfW(Addr) l_addr;
59 char* l_name; 67 char* l_name;
60 ElfW(Dyn)* l_ld; 68 ElfW(Dyn)* l_ld;
61 struct link_map* l_next; 69 struct link_map* l_next;
62 struct link_map* l_prev; 70 struct link_map* l_prev;
63 }; 71 };
64 72
65 #ifdef __cplusplus 73 #ifdef __cplusplus
66 } // extern "C" 74 } // extern "C"
67 #endif // __cplusplus 75 #endif // __cplusplus
68 76
77 #else
78
79 #include_next <link.h>
rmcilroy 2016/07/21 15:04:21 Instead of including this twice (and doing the one
80
69 #endif // !defined(__aarch64__) && !defined(__x86_64__) 81 #endif // !defined(__aarch64__) && !defined(__x86_64__)
70 82
71 #endif /* GOOGLE_BREAKPAD_ANDROID_INCLUDE_LINK_H */ 83 #endif /* GOOGLE_BREAKPAD_ANDROID_INCLUDE_LINK_H */
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698