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 
