symbol binding on dlopen

Sean McNeil sean at mcneil.com
Sun Jun 6 21:52:47 GMT 2004


On Sun, 2004-06-06 at 14:38, Sean McNeil wrote:
> I have been trying to formulate a reasonable explanation why I am seeing
> the following behavior:
> 
> 1) start bash with nss_ldap.
> 2) nss_ldap pulls in libpthread.so.1 via. some non-direct dependency -
> libdb41.so.1.
> 3) Constructor is called for libpthread.so.1 that installs signal
> handler wrappers.
> 4) libreadline.so.4 uses sigaction, but it is not binding to the strong
> symbol of libpthread.so.1.  It is still using the older one.
> 
> Is this expected?  Symbols will only be bound on the immediate
> dependencies of what is loaded by dlopen, or should all symbols within
> the closure be bound?

(Answering my own question partly)  nsdispatch calls dlopen with
RTLD_LOCAL.  If I understand correctly, that would mean this is expected
and that libraries outside of the DAG wouldn't be effected
(/lib/readline.so.4).




More information about the freebsd-amd64 mailing list