summaryrefslogtreecommitdiff
path: root/ldso/libdl
diff options
context:
space:
mode:
authorBernd Schmidt <bernds_cb1@t-online.de>2007-12-04 02:14:39 +0000
committerBernd Schmidt <bernds_cb1@t-online.de>2007-12-04 02:14:39 +0000
commit7129c310626a276f171da52fb0cbddd5c16b5a9b (patch)
treeaa469c03cf28f0b33f0662f93c9da0fdd9dc38ff /ldso/libdl
parentad989e28a40d78faa9ac6916355e8f1482900a35 (diff)
Blackfin FD-PIC patch 6/6.
These are mostly the changes necessary to deal with loading the libraries into memory. A couple new target macros are defined for this purpose, and the code in dl-elf.c is modified to deal with nommu systems.
Diffstat (limited to 'ldso/libdl')
-rw-r--r--ldso/libdl/libdl.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/ldso/libdl/libdl.c b/ldso/libdl/libdl.c
index 4e909a16f..d21f8a6fd 100644
--- a/ldso/libdl/libdl.c
+++ b/ldso/libdl/libdl.c
@@ -587,7 +587,7 @@ static int do_dlclose(void *vhandle, int need_fini)
if (end < ppnt->p_vaddr + ppnt->p_memsz)
end = ppnt->p_vaddr + ppnt->p_memsz;
}
- _dl_munmap((void*)tpnt->loadaddr, end);
+ DL_LIB_UNMAP (tpnt, end);
/* Free elements in RTLD_LOCAL scope list */
for (runp = tpnt->rtld_local; runp; runp = tmp) {
tmp = runp->next;
@@ -713,6 +713,8 @@ int dladdr(const void *__address, Dl_info * __info)
_dl_if_debug_print("__address: %p __info: %p\n", __address, __info);
+ __address = DL_LOOKUP_ADDRESS (__address);
+
for (rpnt = _dl_loaded_modules; rpnt; rpnt = rpnt->next) {
struct elf_resolve *tpnt;