fix prototype of dladdr

this breaks C++ source code in particular.

Change-Id: Ie06b5d31d23b5455e6950c470adc64dd5e7784df
diff --git a/libc/include/dlfcn.h b/libc/include/dlfcn.h
index f84d1d1..7daa8f7 100644
--- a/libc/include/dlfcn.h
+++ b/libc/include/dlfcn.h
@@ -47,7 +47,7 @@
 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 b36af16..872c0c9 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 a36b42c..7161455 100644
--- a/linker/dlfcn.c
+++ b/linker/dlfcn.c
@@ -124,7 +124,7 @@
     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 675b8b2..e0a8a18 100644
--- a/linker/linker.c
+++ b/linker/linker.c
@@ -546,7 +546,7 @@
     return NULL;
 }
 
-soinfo *find_containing_library(void *addr)
+soinfo *find_containing_library(const void *addr)
 {
     soinfo *si;
 
@@ -560,7 +560,7 @@
     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 8a5bc45..7b1ba51 100644
--- a/linker/linker.h
+++ b/linker/linker.h
@@ -213,8 +213,8 @@
 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