diff options
author | Bernd Schmidt <bernds_cb1@t-online.de> | 2007-12-04 02:14:39 +0000 |
---|---|---|
committer | Bernd Schmidt <bernds_cb1@t-online.de> | 2007-12-04 02:14:39 +0000 |
commit | 7129c310626a276f171da52fb0cbddd5c16b5a9b (patch) | |
tree | aa469c03cf28f0b33f0662f93c9da0fdd9dc38ff /ldso/libdl | |
parent | ad989e28a40d78faa9ac6916355e8f1482900a35 (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.c | 4 |
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; |