Anonymous | Login | Signup for a new account | 11-10-2008 10:49 PST |
Main | My View | View Issues | Change Log | Docs |
Viewing Issue Simple Details [ Jump to Notes ] | [ View Advanced ] [ Issue History ] [ Print ] | ||||||||
ID | Category | Severity | Reproducibility | Date Submitted | Last Update | ||||
0000430 | [uClibc] Shared Library Support | major | always | 09-14-05 03:18 | 09-19-05 09:19 | ||||
Reporter | mfuzzey | View Status | public | ||||||
Assigned To | uClibc | ||||||||
Priority | normal | Resolution | fixed | ||||||
Status | closed | Product Version | 0.9.28 | ||||||
Summary | 0000430: dlopen incorrectly merges absolute library names | ||||||||
Description |
In fact with 0.9.28 but tracker wouldn't accept that.. When two calls to dlopen are used with library names containing / but refering to *different* libraries the second call returns the same library as the first. I am having this problem with python (compiled by standard buildroot) and pygame (custom buildroot extension). python contains a native library /usr/lib/python2.4/lib-dynload/time.so pygame contains a native library /usr/lib/python2.4/site-packages/pygame/time.so These two libraries are completely different Importing either by itself works correctly However if both are imported in the same python process the dlopen call for the second returns a reference to the first! The reason is evident looking at _dl_load_shared_library in dl-elf.c [duplicate detection is performed after removing all / parts...] |
||||||||
Additional Information |
Extract from traces with LD_DEBUG dlopen():188: Trying to dlopen '/usr/lib/python2.4/lib-dynload/time.so', RTLD_GLOBAL:0 RTLD_NOW:1 _dl_check_if_named_library_is_loaded:195: Checking if 'time.so' is already loaded _dl_load_shared_library:282: find library='time.so'; searching _dl_load_shared_library:288: trying file='/usr/lib/python2.4/lib-dynload/time.so' ... dlopen():188: Trying to dlopen '/usr/lib/python2.4/site-packages/pygame/time.so', RTLD_GLOBAL:0 RTLD_NOW:1 _dl_check_if_named_library_is_loaded:195: Checking if 'time.so' is already loaded dlopen():204: Lib: /usr/lib/python2.4/site-packages/pygame/time.so already opened |
||||||||
Attached Files | uClibc-absolute-dynamic-load.patch [^] (1,850 bytes) 09-15-05 01:08 | ||||||||
|
Copyright © 2000 - 2006 Mantis Group |