dynamic LD_LIBRARY_PATH

"H.Merijn Brand" <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.dbi.sybase.devel
Message-ID <[email protected]>
I have a situation where the default location for Oracle ($ORACLE_HOME)
is pointing to a complete Oracle-10g database environment. That setting
includes $LD_LIBRARY_PATH (and on HP-UX $SHLIB_PATH)

That environment is used for 3gl, 4gl and perl

So far so good.

Oracle's 10g libraries cause a crash when used in perl scripting when
DBD::Oracle is used in the same script as Net::SSLeay (OpenSSL-1.0.1g)

If I install Oracle Instant Client 12.1 (/pro/oracle/ic121) alongside
Enterprise 10g (/pro/oracle/v102) and set ORACLE_HOME related environ
to /pro/oracle/ic121 et all, DBD::Oracle-1.70 works, even with OpenSSL

When I however work in the default 10g environment, DBD::Oracle cannot
connect, as the LD_LIBRARY_PATH eventually loads libons.so from 10g

Oracle decided to make *most* libraries have version numbers in the
names, but did not do that for libons.so (libnnz12.so is obviously a
different lib than libnnz10.so)

I so far found no workaround in this deadlock, as I have only .so files
and no .a files, so I cannot include the .so's in the generated build
for Oracle.so

What I now would like to do, is to change LD_LIBRARY_PATH and
SHLIB_PATH *just before* the Oracle.so starts loading. That way, I can
just put the shared libs that belong to DBD::Oracle next to Oracle.so

if I change Oracle.pm to start with
--8<---
BEGIN {
    use Config;
    (my $loc = $INC{"DBD/Oracle.pm"}) =~
	s{/DBD/Oracle.pm$}{/$Config{archname}/auto/DBD/Oracle};
    $ENV{LD_LIBRARY_PATH} = "$oloc:$ENV{LD_LIBRARY_PATH}";
    $ENV{SHLIB_PATH}      = "$oloc:$ENV{SHLIB_PATH}";
    }
-->8---

I am still too late :( :(

I found no commands on HP-UX that alter the embedded library path of
existing libraries (then I could change that in a copy to the location
of installation on installation and disable the use of LD_LIBRARY_PATH
and SHLIB_PATH for those)

Has anybody else encountered problems like this?

Any workarounds?


-- 
H.Merijn Brand  http://tux.nl   Perl Monger  http://amsterdam.pm.org/
using perl5.00307 .. 5.19   porting perl5 on HP-UX, AIX, and openSUSE
http://mirrors.develooper.com/hpux/        http://www.test-smoke.org/
http://qa.perl.org   http://www.goldmark.org/jeff/stupid-disclaimers/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.