blob: 7d50f4f4c64572b8e4885e7879ac1c5fc034fb44 [file] [log] [blame]
Ben Chengfac061f2012-03-16 15:37:57 -07001diff -r -u -d /local/elfutils-0.138/libdw/dwarf_begin.c ./libdw/dwarf_begin.c
2--- /local/elfutils-0.138/libdw/dwarf_begin.c 2008-12-10 20:33:30.000000000 -0800
3+++ ./libdw/dwarf_begin.c 2012-03-09 10:19:33.000000000 -0800
Ben Chengcc6695e2012-03-07 23:04:02 -08004@@ -94,7 +94,9 @@
5 /* Get an ELF descriptor. */
6 elf = elf_begin (fd, elfcmd, NULL);
7 if (elf == NULL)
8+ /* ANDROID_CHANGE_BEGIN */
9 {
10+#if 0
11 /* Test why the `elf_begin" call failed. */
12 struct stat64 st;
13
14@@ -104,6 +106,10 @@
15 __libdw_seterrno (DWARF_E_INVALID_FILE);
16 else
17 __libdw_seterrno (DWARF_E_IO_ERROR);
18+#else
19+ __libdw_seterrno (DWARF_E_IO_ERROR);
20+#endif
21+ /* ANDROID_CHANGE_END */
22 }
23 else
24 {
Ben Chengfac061f2012-03-16 15:37:57 -070025diff -r -u -d /local/elfutils-0.138/libdw/dwarf_getpubnames.c ./libdw/dwarf_getpubnames.c
26--- /local/elfutils-0.138/libdw/dwarf_getpubnames.c 2008-12-10 20:33:30.000000000 -0800
27+++ ./libdw/dwarf_getpubnames.c 2012-03-12 11:09:29.000000000 -0700
Ben Chengcc6695e2012-03-07 23:04:02 -080028@@ -60,6 +60,9 @@
29 #include <libdwP.h>
30 #include <dwarf.h>
31
32+/* ANDROID_CHANGE_BEGIN */
33+#include <AndroidFixup.h>
34+/* ANDROID_CHANGE_END */
35
36 static int
37 get_offsets (Dwarf *dbg)
Ben Chengfac061f2012-03-16 15:37:57 -070038diff -r -u -d /local/elfutils-0.138/libdw/dwarf_getsrc_file.c ./libdw/dwarf_getsrc_file.c
39--- /local/elfutils-0.138/libdw/dwarf_getsrc_file.c 2008-12-10 20:33:30.000000000 -0800
40+++ ./libdw/dwarf_getsrc_file.c 2012-03-12 12:42:46.000000000 -0700
41@@ -59,7 +59,6 @@
Ben Chengcc6695e2012-03-07 23:04:02 -080042
Ben Chengfac061f2012-03-16 15:37:57 -070043 #include "libdwP.h"
Ben Chengcc6695e2012-03-07 23:04:02 -080044
Ben Chengfac061f2012-03-16 15:37:57 -070045-
46 int
47 dwarf_getsrc_file (Dwarf *dbg, const char *fname, int lineno, int column,
48 Dwarf_Line ***srcsp, size_t *nsrcs)
49diff -r -u -d /local/elfutils-0.138/libdw/libdw_alloc.c ./libdw/libdw_alloc.c
50--- /local/elfutils-0.138/libdw/libdw_alloc.c 2008-12-10 20:33:30.000000000 -0800
51+++ ./libdw/libdw_alloc.c 2012-03-09 10:19:35.000000000 -0800
Ben Chengcc6695e2012-03-07 23:04:02 -080052@@ -58,6 +58,9 @@
53 #include <sys/param.h>
54 #include "libdwP.h"
55
56+/* ANDROID_CHANGE_BEGIN */
57+#include <AndroidFixup.h>
58+/* ANDROID_CHANGE_END */
59
60 void *
61 __libdw_allocate (Dwarf *dbg, size_t minsize, size_t align)
Ben Chengfac061f2012-03-16 15:37:57 -070062diff -r -u -d /local/elfutils-0.138/libdwfl/dwfl_build_id_find_elf.c ./libdwfl/dwfl_build_id_find_elf.c
63--- /local/elfutils-0.138/libdwfl/dwfl_build_id_find_elf.c 2008-12-10 20:33:30.000000000 -0800
64+++ ./libdwfl/dwfl_build_id_find_elf.c 2012-03-12 12:23:29.000000000 -0700
65@@ -52,7 +52,6 @@
Ben Chengcc6695e2012-03-07 23:04:02 -080066 #include <fcntl.h>
67 #include <unistd.h>
68
Ben Chengfac061f2012-03-16 15:37:57 -070069-
Ben Chengcc6695e2012-03-07 23:04:02 -080070 int
71 internal_function
Ben Chengfac061f2012-03-16 15:37:57 -070072 __libdwfl_open_by_build_id (Dwfl_Module *mod, bool debug, char **file_name)
73@@ -84,8 +83,16 @@
Ben Chengcc6695e2012-03-07 23:04:02 -080074 ".debug");
75
76 const Dwfl_Callbacks *const cb = mod->dwfl->callbacks;
77+
78+/* ANDROID_CHANGE_BEGIN */
79+#ifdef __BIONIC__
80+ char *path = strdup ((cb->debuginfo_path ? *cb->debuginfo_path : NULL)
81+ ?: DEFAULT_DEBUGINFO_PATH);
82+#else
83 char *path = strdupa ((cb->debuginfo_path ? *cb->debuginfo_path : NULL)
84 ?: DEFAULT_DEBUGINFO_PATH);
85+#endif
86+/* ANDROID_CHANGE_END */
87
88 int fd = -1;
89 char *dir;
Ben Chengfac061f2012-03-16 15:37:57 -070090@@ -103,7 +110,6 @@
Ben Chengcc6695e2012-03-07 23:04:02 -080091 if (unlikely (name == NULL))
92 break;
93 memcpy (mempcpy (name, dir, dirlen), id_name, sizeof id_name);
94-
95 fd = TEMP_FAILURE_RETRY (open64 (name, O_RDONLY));
96 if (fd >= 0)
97 {
Ben Chengfac061f2012-03-16 15:37:57 -070098@@ -119,6 +125,12 @@
Ben Chengcc6695e2012-03-07 23:04:02 -080099 free (name);
100 }
101
102+/* ANDROID_CHANGE_BEGIN */
103+#ifdef __BIONIC__
104+ free(path);
105+#endif
106+/* ANDROID_CHANGE_END */
107+
108 /* If we simply found nothing, clear errno. If we had some other error
109 with the file, report that. Possibly this should treat other errors
110 like ENOENT too. But ignoring all errors could mask some that should
Ben Chengfac061f2012-03-16 15:37:57 -0700111diff -r -u -d /local/elfutils-0.138/libdwfl/dwfl_error.c ./libdwfl/dwfl_error.c
112--- /local/elfutils-0.138/libdwfl/dwfl_error.c 2008-12-10 20:33:30.000000000 -0800
113+++ ./libdwfl/dwfl_error.c 2012-03-12 12:39:16.000000000 -0700
114@@ -218,7 +218,14 @@
115 switch (error &~ 0xffff)
116 {
117 case OTHER_ERROR (ERRNO):
118+ /* ANDROID_CHANGE_BEGIN */
119+#ifdef __BIONIC__
120+ strerror_r (error & 0xffff, "bad", 0);
121+ return NULL;
122+#else
123 return strerror_r (error & 0xffff, "bad", 0);
124+#endif
125+ /* ANDROID_CHANGE_END */
126 case OTHER_ERROR (LIBELF):
127 return elf_errmsg (error & 0xffff);
128 case OTHER_ERROR (LIBDW):
129diff -r -u -d /local/elfutils-0.138/libdwfl/dwfl_module_build_id.c ./libdwfl/dwfl_module_build_id.c
130--- /local/elfutils-0.138/libdwfl/dwfl_module_build_id.c 2008-12-30 21:48:23.000000000 -0800
131+++ ./libdwfl/dwfl_module_build_id.c 2012-03-12 12:40:16.000000000 -0700
132@@ -139,9 +139,17 @@
Ben Chengcc6695e2012-03-07 23:04:02 -0800133 return result;
134 }
135
136+/* ANDROID_CHANGE_BEGIN */
137+#if 0
138 int
139 __dwfl_module_build_id (Dwfl_Module *mod,
140 const unsigned char **bits, GElf_Addr *vaddr)
141+#else
Ben Chengfac061f2012-03-16 15:37:57 -0700142+int
Ben Chengcc6695e2012-03-07 23:04:02 -0800143+dwfl_module_build_id (Dwfl_Module *mod,
144+ const unsigned char **bits, GElf_Addr *vaddr)
145+#endif
146+/* ANDROID_CHANGE_END */
147 {
148 if (mod == NULL)
149 return -1;
Ben Chengfac061f2012-03-16 15:37:57 -0700150@@ -164,6 +172,9 @@
Ben Chengcc6695e2012-03-07 23:04:02 -0800151 *vaddr = mod->build_id_vaddr;
152 return mod->build_id_len;
153 }
154+
155+/* ANDROID_CHANGE_BEGIN */
156+#if 0
157 extern __typeof__ (dwfl_module_build_id) INTUSE(dwfl_module_build_id)
158 __attribute__ ((alias ("__dwfl_module_build_id")));
159 asm (".symver "
Ben Chengfac061f2012-03-16 15:37:57 -0700160@@ -180,3 +191,5 @@
Ben Chengcc6695e2012-03-07 23:04:02 -0800161 }
162 asm (".symver "
163 "_BUG_COMPAT_dwfl_module_build_id, dwfl_module_build_id@ELFUTILS_0.130");
164+#endif
165+/* ANDROID_CHANGE_END */
Ben Chengfac061f2012-03-16 15:37:57 -0700166diff -r -u -d /local/elfutils-0.138/libdwfl/dwfl_module_getdwarf.c ./libdwfl/dwfl_module_getdwarf.c
167--- /local/elfutils-0.138/libdwfl/dwfl_module_getdwarf.c 2008-12-10 20:33:30.000000000 -0800
168+++ ./libdwfl/dwfl_module_getdwarf.c 2012-03-12 12:24:14.000000000 -0700
169@@ -53,7 +53,6 @@
Ben Chengcc6695e2012-03-07 23:04:02 -0800170 #include <unistd.h>
171 #include "../libdw/libdwP.h" /* DWARF_E_* values are here. */
172
Ben Chengfac061f2012-03-16 15:37:57 -0700173-
Ben Chengcc6695e2012-03-07 23:04:02 -0800174 /* Open libelf FILE->fd and compute the load base of ELF as loaded in MOD.
175 When we return success, FILE->elf and FILE->bias are set up. */
Ben Chengfac061f2012-03-16 15:37:57 -0700176 static inline Dwfl_Error
177diff -r -u -d /local/elfutils-0.138/libdwfl/dwfl_module_getsrc_file.c ./libdwfl/dwfl_module_getsrc_file.c
178--- /local/elfutils-0.138/libdwfl/dwfl_module_getsrc_file.c 2008-12-10 20:33:30.000000000 -0800
179+++ ./libdwfl/dwfl_module_getsrc_file.c 2012-03-12 12:42:55.000000000 -0700
180@@ -50,7 +50,6 @@
181 #include "libdwflP.h"
182 #include "../libdw/libdwP.h"
183
184-
185 int
186 dwfl_module_getsrc_file (Dwfl_Module *mod,
187 const char *fname, int lineno, int column,
188diff -r -u -d /local/elfutils-0.138/libdwfl/find-debuginfo.c ./libdwfl/find-debuginfo.c
189--- /local/elfutils-0.138/libdwfl/find-debuginfo.c 2008-12-10 20:33:30.000000000 -0800
190+++ ./libdwfl/find-debuginfo.c 2012-03-12 12:24:39.000000000 -0700
191@@ -53,7 +53,6 @@
Ben Chengcc6695e2012-03-07 23:04:02 -0800192 #include <unistd.h>
193 #include "system.h"
194
Ben Chengfac061f2012-03-16 15:37:57 -0700195-
Ben Chengcc6695e2012-03-07 23:04:02 -0800196 /* Try to open64 [DIR/][SUBDIR/]DEBUGLINK, return file descriptor or -1.
197 On success, *DEBUGINFO_FILE_NAME has the malloc'd name of the open file. */
Ben Chengfac061f2012-03-16 15:37:57 -0700198 static int
199@@ -145,8 +144,15 @@
Ben Chengcc6695e2012-03-07 23:04:02 -0800200 indicated by the debug directory path setting. */
201
202 const Dwfl_Callbacks *const cb = mod->dwfl->callbacks;
203+/* ANDROID_CHANGE_BEGIN */
204+#ifdef __BIONIC__
205+ char *path = strdup ((cb->debuginfo_path ? *cb->debuginfo_path : NULL)
206+ ?: DEFAULT_DEBUGINFO_PATH);
207+#else
208 char *path = strdupa ((cb->debuginfo_path ? *cb->debuginfo_path : NULL)
209 ?: DEFAULT_DEBUGINFO_PATH);
210+#endif
211+/* ANDROID_CHANGE_END */
212
213 /* A leading - or + in the whole path sets whether to check file CRCs. */
214 bool defcheck = true;
Ben Chengfac061f2012-03-16 15:37:57 -0700215@@ -156,8 +162,15 @@
Ben Chengcc6695e2012-03-07 23:04:02 -0800216 ++path;
217 }
218
219+ /* ANDROID_CHANGE_BEGIN */
220+#ifdef __BIONIC__
221+ char *file_dirname = (file_basename == file_name ? NULL
222+ : strndup (file_name, file_basename - 1 - file_name));
223+#else
224 char *file_dirname = (file_basename == file_name ? NULL
225 : strndupa (file_name, file_basename - 1 - file_name));
226+#endif
227+ /* ANDROID_CHANGE_END */
228 char *p;
229 while ((p = strsep (&path, ":")) != NULL)
230 {
Ben Chengfac061f2012-03-16 15:37:57 -0700231@@ -201,17 +214,36 @@
Ben Chengcc6695e2012-03-07 23:04:02 -0800232 case ENOTDIR:
233 continue;
234 default:
235+/* ANDROID_CHANGE_BEGIN */
236+#ifdef __BIONIC__
237+ free(path);
238+ free(file_dirname);
239+#endif
240+/* ANDROID_CHANGE_END */
241 return -1;
242 }
243 if (validate (mod, fd, check, debuglink_crc))
244 {
245 *debuginfo_file_name = fname;
246+/* ANDROID_CHANGE_BEGIN */
247+#ifdef __BIONIC__
248+ free(path);
249+ free(file_dirname);
250+#endif
251+/* ANDROID_CHANGE_END */
252 return fd;
253 }
254 free (fname);
255 close (fd);
256 }
257
258+/* ANDROID_CHANGE_BEGIN */
259+#ifdef __BIONIC__
260+ free(path);
261+ free(file_dirname);
262+#endif
263+/* ANDROID_CHANGE_END */
264+
265 /* No dice. */
266 errno = 0;
267 return -1;
Ben Chengfac061f2012-03-16 15:37:57 -0700268diff -r -u -d /local/elfutils-0.138/libebl/eblopenbackend.c ./libebl/eblopenbackend.c
269--- /local/elfutils-0.138/libebl/eblopenbackend.c 2008-12-10 20:33:30.000000000 -0800
270+++ ./libebl/eblopenbackend.c 2012-03-16 16:55:06.000000000 -0700
271@@ -196,8 +196,15 @@
272 uint32_t descsz, const char *desc);
273 static bool default_debugscn_p (const char *name);
274 static bool default_copy_reloc_p (int reloc);
Ben Chengcc6695e2012-03-07 23:04:02 -0800275+/* ANDROID_CHANGE_BEGIN */
Ben Chengfac061f2012-03-16 15:37:57 -0700276+#ifndef __APPLE__
277 static bool default_none_reloc_p (int reloc);
278 static bool default_relative_reloc_p (int reloc);
279+#else
280+#define default_none_reloc_p default_copy_reloc_p
281+#define default_relative_reloc_p default_copy_reloc_p
282+#endif
Ben Chengcc6695e2012-03-07 23:04:02 -0800283+/* ANDROID_CHANGE_END */
Ben Chengfac061f2012-03-16 15:37:57 -0700284 static bool default_check_special_symbol (Elf *elf, GElf_Ehdr *ehdr,
285 const GElf_Sym *sym,
286 const char *name,
287@@ -677,8 +684,12 @@
288 {
289 return false;
290 }
291+/* ANDROID_CHANGE_BEGIN */
292+#ifndef __APPLE__
293 strong_alias (default_copy_reloc_p, default_none_reloc_p)
294 strong_alias (default_copy_reloc_p, default_relative_reloc_p)
295+#endif
296+/* ANDROID_CHANGE_END */
297
298 static bool
299 default_check_special_symbol (Elf *elf __attribute__ ((unused)),
300diff -r -u -d /local/elfutils-0.138/libebl/libeblP.h ./libebl/libeblP.h
301--- /local/elfutils-0.138/libebl/libeblP.h 2008-12-10 20:33:30.000000000 -0800
302+++ ./libebl/libeblP.h 2012-03-09 10:19:37.000000000 -0800
Ben Chengcc6695e2012-03-07 23:04:02 -0800303@@ -55,7 +55,6 @@
304 #include <libebl.h>
305 #include <libintl.h>
306
307-
308 /* Backend handle. */
309 struct ebl
310 {
Ben Chengfac061f2012-03-16 15:37:57 -0700311diff -r -u -d /local/elfutils-0.138/libelf/elf32_fsize.c ./libelf/elf32_fsize.c
312--- /local/elfutils-0.138/libelf/elf32_fsize.c 2008-12-10 20:33:30.000000000 -0800
313+++ ./libelf/elf32_fsize.c 2012-03-09 10:19:38.000000000 -0800
Ben Chengcc6695e2012-03-07 23:04:02 -0800314@@ -88,5 +88,9 @@
315 * __libelf_type_sizes[0][ELFW(ELFCLASS,LIBELFBITS) - 1][type]);
316 #endif
317 }
318+/* ANDROID_CHANGE_BEGIN */
319+#ifndef __APPLE__
320 #define local_strong_alias(n1, n2) strong_alias (n1, n2)
321 local_strong_alias (elfw2(LIBELFBITS, fsize), __elfw2(LIBELFBITS, msize))
322+#endif
323+/* ANDROID_CHANGE_END */
Ben Chengfac061f2012-03-16 15:37:57 -0700324diff -r -u -d /local/elfutils-0.138/libelf/elf_begin.c ./libelf/elf_begin.c
325--- /local/elfutils-0.138/libelf/elf_begin.c 2008-12-10 20:33:30.000000000 -0800
326+++ ./libelf/elf_begin.c 2012-03-09 10:19:38.000000000 -0800
Ben Chengcc6695e2012-03-07 23:04:02 -0800327@@ -68,7 +68,6 @@
328 #include "libelfP.h"
329 #include "common.h"
330
331-
332 /* Create descriptor for archive in memory. */
333 static inline Elf *
334 file_read_ar (int fildes, void *map_address, off_t offset, size_t maxsize,
Ben Chengfac061f2012-03-16 15:37:57 -0700335diff -r -u -d /local/elfutils-0.138/libelf/elf_getdata_rawchunk.c ./libelf/elf_getdata_rawchunk.c
336--- /local/elfutils-0.138/libelf/elf_getdata_rawchunk.c 2008-12-10 20:33:30.000000000 -0800
337+++ ./libelf/elf_getdata_rawchunk.c 2012-03-15 11:14:32.000000000 -0700
338@@ -64,7 +64,13 @@
339 Elf_Data *
340 elf_getdata_rawchunk (elf, offset, size, type)
341 Elf *elf;
342+ /* ANDROID_CHANGE_BEGIN */
343+#if 0
344 off64_t offset;
345+#else
346+ off_t offset;
347+#endif
348+ /* ANDROID_CHANGE_END */
349 size_t size;
350 Elf_Type type;
351 {
352@@ -78,8 +84,15 @@
353 return NULL;
354 }
355
356+ /* ANDROID_CHANGE_BEGIN */
357+#if 0
358 if (unlikely (size > elf->maximum_size
359 || (off64_t) (elf->maximum_size - size) < offset))
360+#else
361+ if (unlikely (size > elf->maximum_size
362+ || (off_t) (elf->maximum_size - size) < offset))
363+#endif
364+ /* ANDROID_CHANGE_END */
365 {
366 /* Invalid request. */
367 __libelf_seterrno (ELF_E_INVALID_OP);
368diff -r -u -d /local/elfutils-0.138/libelf/elf.h ./libelf/elf.h
369--- /local/elfutils-0.138/libelf/elf.h 2008-12-10 20:33:30.000000000 -0800
370+++ ./libelf/elf.h 2012-03-09 10:19:38.000000000 -0800
Ben Chengcc6695e2012-03-07 23:04:02 -0800371@@ -21,7 +21,15 @@
372 #ifndef _ELF_H
373 #define _ELF_H 1
374
375+/* ANDROID_CHANGE_BEGIN */
376+/*
377+ * elf.h may be directly included from a different project, and features.h does
378+ * not exist on host Mac OS.
379+ */
380+#ifndef __APPLE__
381 #include <features.h>
382+#endif
383+/* ANDROID_CHANGE_END */
384
385 __BEGIN_DECLS
386
Ben Chengfac061f2012-03-16 15:37:57 -0700387diff -r -u -d /local/elfutils-0.138/libelf/gelf_xlate.c ./libelf/gelf_xlate.c
388--- /local/elfutils-0.138/libelf/gelf_xlate.c 2008-12-10 20:33:30.000000000 -0800
389+++ ./libelf/gelf_xlate.c 2012-03-09 10:19:39.000000000 -0800
Ben Chengcc6695e2012-03-07 23:04:02 -0800390@@ -229,7 +229,11 @@
391 }
392 }
393 };
394+/* ANDROID_CHANGE_BEGIN */
395+#ifndef __APPLE__
396 /* For now we only handle the case where the memory representation is the
397 same as the file representation. Should this change we have to define
398 separate functions. For now reuse them. */
399 strong_alias (__elf_xfctstom, __elf_xfctstof)
400+#endif
401+/* ANDROID_CHANGE_END */
Ben Chengfac061f2012-03-16 15:37:57 -0700402diff -r -u -d /local/elfutils-0.138/libelf/libelf.h ./libelf/libelf.h
403--- /local/elfutils-0.138/libelf/libelf.h 2008-12-17 16:29:37.000000000 -0800
404+++ ./libelf/libelf.h 2012-03-15 11:07:48.000000000 -0700
405@@ -95,7 +95,13 @@
406 Elf_Type d_type; /* Type of this piece of data. */
407 unsigned int d_version; /* ELF version. */
408 size_t d_size; /* Size in bytes. */
409+ /* ANDROID_CHANGE_BEGIN */
410+#if 0
411 loff_t d_off; /* Offset into section. */
412+#else
413+ off_t d_off; /* Offset into section. */
414+#endif
415+ /* ANDROID_CHANGE_END */
416 size_t d_align; /* Alignment in section. */
417 } Elf_Data;
418
419@@ -157,7 +163,13 @@
420 uid_t ar_uid; /* User ID. */
421 gid_t ar_gid; /* Group ID. */
422 mode_t ar_mode; /* File mode. */
423+ /* ANDROID_CHANGE_BEGIN */
424+#if 0
425 loff_t ar_size; /* File size. */
426+#else
427+ off_t ar_size; /* File size. */
428+#endif
429+ /* ANDROID_CHANGE_END */
430 char *ar_rawname; /* Original name of archive member. */
431 } Elf_Arhdr;
432
433@@ -198,13 +210,25 @@
434 extern int elf_end (Elf *__elf);
435
436 /* Update ELF descriptor and write file to disk. */
437-extern loff_t elf_update (Elf *__elf, Elf_Cmd __cmd);
438+/* ANDROID_CHANGE_BEGIN */
439+#if 0
440+extern off_t elf_update (Elf *__elf, Elf_Cmd __cmd);
441+#else
442+#endif
443+/* ANDROID_CHANGE_END */
444+
445
446 /* Determine what kind of file is associated with ELF. */
447 extern Elf_Kind elf_kind (Elf *__elf) __attribute__ ((__pure__));
448
449 /* Get the base offset for an object file. */
450+/* ANDROID_CHANGE_BEGIN */
451+#if 0
452 extern loff_t elf_getbase (Elf *__elf);
453+#else
454+extern off_t elf_getbase (Elf *__elf);
455+#endif
456+/* ANDROID_CHANGE_END */
457
458
459 /* Retrieve file identification data. */
460@@ -305,9 +329,17 @@
461 /* Get data translated from a chunk of the file contents as section data
462 would be for TYPE. The resulting Elf_Data pointer is valid until
463 elf_end (ELF) is called. */
464+/* ANDROID_CHANGE_BEGIN */
465+#if 0
466 extern Elf_Data *elf_getdata_rawchunk (Elf *__elf,
467 loff_t __offset, size_t __size,
468 Elf_Type __type);
469+#else
470+extern Elf_Data *elf_getdata_rawchunk (Elf *__elf,
471+ off_t __offset, size_t __size,
472+ Elf_Type __type);
473+#endif
474+/* ANDROID_CHANGE_END */
475
476
477 /* Return pointer to string at OFFSET in section INDEX. */
478@@ -318,7 +350,13 @@
479 extern Elf_Arhdr *elf_getarhdr (Elf *__elf);
480
481 /* Return offset in archive for current file ELF. */
482+/* ANDROID_CHANGE_BEGIN */
483+#if 0
484 extern loff_t elf_getaroff (Elf *__elf);
485+#else
486+extern off_t elf_getaroff (Elf *__elf);
487+#endif
488+/* ANDROID_CHANGE_END */
489
490 /* Select archive element at OFFSET. */
491 extern size_t elf_rand (Elf *__elf, size_t __offset);