[Fwd: RE: :Oracle on Solaris 9/10 and Oracle 10g]
am 23.07.2007 22:03:48 von cbrandtI received the following suggestion from a kind contributor:
>I believe the flag is -r=build32, the command being
>
>perl Makefile.PL -r=build32
and that option did indeed create the Makefile with the lib32 settings
correctly enabled. However, I'm still running into a problem. I can only
get that version to work if I set the LD_LIBRARY_PATH environment
variable. We haven't done this in the past, and I'd rather not have to
do it for our entire environment.
I got it working on a different machine a few months ago with
DBD-Oracle-1.16, my hacked Makefile, and pointing at
/oracle/product/10.2.0/db_1/lib32,
which is where the library goes on a server install.
Now, on a client install, I've tried DBD::Oracle 1.16 and 1.19, with the
build32 option and with my hacked version, and I can't get it to work.
I'm pointing at /oracle/product/10.2.0/client_1/lib32 and I get the
below each time. Any hints on why it can find libclntsh.so.10.1 and not
libnnz10.so?
->ldd blib/arch/auto/DBD/Oracle/Oracle.so
libclntsh.so.10.1 =>
/oracle/product/10.2.0/client_1/lib32/libclntsh.so.10.1
libkstat.so.1 => /usr/lib/libkstat.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libsocket.so.1 => /usr/lib/libsocket.so.1
libgen.so.1 => /usr/lib/libgen.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libsched.so.1 => /usr/lib/libsched.so.1
libaio.so.1 => /usr/lib/libaio.so.1
librt.so.1 => /usr/lib/librt.so.1
libm.so.1 => /usr/lib/libm.so.1
libthread.so.1 => /usr/lib/libthread.so.1
libpthread.so.1 => /usr/lib/libpthread.so.1
libnnz10.so => (file not found)
libc.so.1 => /usr/lib/libc.so.1
libmp.so.2 => /usr/lib/libmp.so.2
libmd5.so.1 => /usr/lib/libmd5.so.1
/usr/platform/SUNW,Sun-Fire-480R/lib/libc_psr.so.1
/usr/platform/SUNW,Sun-Fire-480R/lib/libmd5_psr.so.1
Thanks again,
Jim
-----Original Message-----
From: Jim Brandt [mailto:cbrandt@buffalo.edu]
Sent: July 20, 2007 2:01 PM
To: dbi-users@perl.org
Subject: DBD::Oracle on Solaris 9/10 and Oracle 10g
I found some discussion with the above subject from around February 2007
and thought I'd add my experience, since I just had to compile
DBD::Oracle on one of our Solaris systems.
I found that to get the compile to properly point at the 32-bit
libraries, I had to make the following changes to the generated Makefile:
* delete all references to -xarch=v9
* change all occurrences of client_1/lib to client_1/lib32
* change all occurrences of rdbms/lib to rdbms/lib32
These changes worked on Solaris 9 and 10. I'm not sure why the 'xarch'
param causes problems. However, the libraries seem to be incorrectly
defaulting to 'lib', which is the 64-bit libraries under 10g.
I don't know if there is a flag to pass into Makefile.PL to fix this or
if the file needs to be hacked to default to the 'lib32' directory.
--
Jim Brandt
Administrative Computing Services
University at Buffalo