This is the mail archive of the
glibc-bugs@sources.redhat.com
mailing list for the glibc project.
[Bug libc/964] New: Symbol resolution on the dopened libraries doesn't happen from the dependent libraries
- From: "jjaimon at novell dot com" <sourceware-bugzilla at sources dot redhat dot com>
- To: glibc-bugs at sources dot redhat dot com
- Date: 24 May 2005 11:03:12 -0000
- Subject: [Bug libc/964] New: Symbol resolution on the dopened libraries doesn't happen from the dependent libraries
- Reply-to: sourceware-bugzilla at sources dot redhat dot com
The man page for dlopen says
"External references in the library are resolved using the libraries in that
library's dependency list and any other libraries previously opened with
the RTLD_GLOBAL flag. If the executable was linked with the flag "-rdynamic"
(or, synonymously, "--export-dynamic"), then the global symbols in the
executable will also be used to resolve references in a dynamically loaded library"
However, the symbol resoultion within the dlopened libraries goes to the binary
level and start searching down. For eg.
Application
/\
/ \
libopen libpam
\
\dlopen()
\
liblum
\
\
libnvl
both libopen and libnvl exports same set of APIs. When liblum calls one of the
API exported by libnvl, the expectation is that, the call will get resolved from
libnvl since liblum is dlopened by libpam and libnvl is dynamically linked with
liblum. However, the symbol gets resolved from libopen which is wrong as per
the man page.
--
Summary: Symbol resolution on the dopened libraries doesn't
happen from the dependent libraries
Product: glibc
Version: 2.3.4
Status: NEW
Severity: critical
Priority: P1
Component: libc
AssignedTo: gotom at debian dot or dot jp
ReportedBy: jjaimon at novell dot com
CC: glibc-bugs at sources dot redhat dot com
http://sources.redhat.com/bugzilla/show_bug.cgi?id=964
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.