HPUX 11.11 shared library loader issue



hi,

I have an executable A that links with a shared version of OpenLDAP
library (2.2.x)...some of the output from running 'chatr' on it is:

shared library dynamic path search:
SHLIB_PATH enabled first
embedded path enabled second /usr/lib
....
dynamic liblber-2.2.sl.7
dynamic libldap-2.2.sl.7
....

I also have a shared library B that links with a static version of
OpenLDAP library (2.1.4)... some of the output from running 'chatr' on
it is:

shared library dynamic path search:
SHLIB_PATH enabled first
embedded path disabled second Not Defined

Now, when executable A is running it loads (dynamically, via dlopen or
equivalent) the shared library B and then executes an exported routine
.... eventually I get a crash in OpenLDAP function. I've added code to
output OpenLDAP API info to the exported routine, and have also written
a small test app which tries to simulate the dynamic loading etc
behaviour of the executable A (but which doesn't have any sort of
dependency on OpenLDAP)

It would appear as though I get different OpenLDAP version information
being shown, depending on whether my test app is run (and loads shared
library B), or the executable A is run and does the loading/executing.
I'm just curious as to why this is happening... I would have expected
that since shared library B links with static OpenLDAP libraries, there
shouldn't be any conflict...

Is this the standard behaviour on HPUX 11.11, or some known loader bug?
Or maybe a sign that inappropriate method was used for loading the
shared library B? Is there some way around it (apart from both
executable A and library B being built using same version of OpenLDAP)?

p.s. by the way, this setup seems to work okay (no crashes) on Windows,
AIX, Solaris and Linux...

any tips/suggestions would be most welcome,

regards,
Greg


bash-3.1# uname -a
HP-UX <hostname> B.11.11 U 9000/800 1721108546 unlimited-user license

.