From bda5da074eab4bdf374e1f4a19d480c62c72f5ff Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Tue, 27 Sep 2011 22:30:19 -0700 Subject: [PATCH] fix prototype of dladdr this breaks C++ source code in particular. Change-Id: Ie06b5d31d23b5455e6950c470adc64dd5e7784df --- libc/include/dlfcn.h | 2 +- libdl/libdl.c | 2 +- linker/dlfcn.c | 2 +- linker/linker.c | 4 ++-- linker/linker.h | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/libc/include/dlfcn.h b/libc/include/dlfcn.h index f84d1d183..7daa8f7b4 100644 --- a/libc/include/dlfcn.h +++ b/libc/include/dlfcn.h @@ -47,7 +47,7 @@ extern void* dlopen(const char* filename, int flag); extern int dlclose(void* handle); extern const char* dlerror(void); extern void* dlsym(void* handle, const char* symbol); -extern int dladdr(void* addr, Dl_info *info); +extern int dladdr(const void* addr, Dl_info *info); enum { RTLD_NOW = 0, diff --git a/libdl/libdl.c b/libdl/libdl.c index b36af1686..872c0c914 100644 --- a/libdl/libdl.c +++ b/libdl/libdl.c @@ -21,7 +21,7 @@ void *dlopen(const char *filename, int flag) { return 0; } const char *dlerror(void) { return 0; } void *dlsym(void *handle, const char *symbol) { return 0; } -int dladdr(void *addr, Dl_info *info) { return 0; } +int dladdr(const void *addr, Dl_info *info) { return 0; } int dlclose(void *handle) { return 0; } #ifdef __arm__ diff --git a/linker/dlfcn.c b/linker/dlfcn.c index a36b42ccf..716145516 100644 --- a/linker/dlfcn.c +++ b/linker/dlfcn.c @@ -124,7 +124,7 @@ err: return 0; } -int dladdr(void *addr, Dl_info *info) +int dladdr(const void *addr, Dl_info *info) { int ret = 0; diff --git a/linker/linker.c b/linker/linker.c index 675b8b2e8..e0a8a1827 100644 --- a/linker/linker.c +++ b/linker/linker.c @@ -546,7 +546,7 @@ Elf32_Sym *lookup(const char *name, soinfo **found, soinfo *start) return NULL; } -soinfo *find_containing_library(void *addr) +soinfo *find_containing_library(const void *addr) { soinfo *si; @@ -560,7 +560,7 @@ soinfo *find_containing_library(void *addr) return NULL; } -Elf32_Sym *find_containing_symbol(void *addr, soinfo *si) +Elf32_Sym *find_containing_symbol(const void *addr, soinfo *si) { unsigned int i; unsigned soaddr = (unsigned)addr - si->base; diff --git a/linker/linker.h b/linker/linker.h index 8a5bc4515..7b1ba51eb 100644 --- a/linker/linker.h +++ b/linker/linker.h @@ -213,8 +213,8 @@ soinfo *find_library(const char *name); unsigned unload_library(soinfo *si); Elf32_Sym *lookup_in_library(soinfo *si, const char *name); Elf32_Sym *lookup(const char *name, soinfo **found, soinfo *start); -soinfo *find_containing_library(void *addr); -Elf32_Sym *find_containing_symbol(void *addr, soinfo *si); +soinfo *find_containing_library(const void *addr); +Elf32_Sym *find_containing_symbol(const void *addr, soinfo *si); const char *linker_get_error(void); #ifdef ANDROID_ARM_LINKER