I 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:[EMAIL PROTECTED]
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

Reply via email to