Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 06 Jun 2004 14:52:45 -0700
From:      Sean McNeil <sean@mcneil.com>
To:        freebsd-amd64@freebsd.org
Cc:        freebsd-threads@freebsd.org
Subject:   Re: symbol binding on dlopen
Message-ID:  <1086558765.59346.3.camel@server.mcneil.com>
In-Reply-To: <1086557908.52631.11.camel@server.mcneil.com>
References:  <1086557908.52631.11.camel@server.mcneil.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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).




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1086558765.59346.3.camel>