DBD::Oracle's shared object library is linking to the only library it finds. If it is getting "/u01/app/oracle/product/9.0.1/lib/libclntsh.so.9.0" it is because that is the first libclntsh.so.9.0 in the LD_LIBRARY_PATH, and if it isn't 32-bit then the problem is that LD_LIBRARY_PATH should not include that directory.
On Mon, 14 Oct 2002, Kwabbi, Seth wrote: > It is 64 bit, but why is the DynaLoader using 64 bit libraries whilst > LD_LIBRARY_PATH points to the 32 bit libraries ? > > Thanks. > > -----Original Message----- > From: David M. Lloyd [mailto:[EMAIL PROTECTED]] > Sent: Monday, October 14, 2002 3:10 PM > To: Kwabbi, Seth > Cc: '[EMAIL PROTECTED]' > Subject: RE: Wrong ELF Class when running make for DBD-Oracle-1.12 > module > > > Run this command: > > file /u01/app/oracle/product/9.0.1/lib/libclntsh.so.9.0 > > If it tells you that it is a 64-bit ELF library, it's the 64-bit version. > > On Mon, 14 Oct 2002, Kwabbi, Seth wrote: > > > When I execute my perl code to connect to the Oracle databse using the 32 > > Bit version of > > DBD-Oracle, I encounter the error below even though LD_LIBRARY_PATH points > > to the 32 bit libraries. Is there anything else that I need to set for > this > > to work properly ? > > > > Can't connect to database: install_driver(Oracle) failed: Can't load > > > '/usr/local/lib/perl5/site_perl/5.6.1/sun4-solaris/auto/DBD/Oracle/Oracle.so > > ' for module DBD::Oracle: ld.so.1: /usr/local/bin/perl: fatal: > > /u01/app/oracle/product/9.0.1/lib/libclntsh.so.9.0: wrong ELF class: > > ELFCLASS64 at /usr/local/lib/perl5/5.6.1/sun4-solaris/DynaLoader.pm line > > 206. at (eval 14) line 3 Compilation failed in require at (eval 14) line > 3. > > > > Cheers. > > > > -----Original Message----- > > From: David M. Lloyd [mailto:[EMAIL PROTECTED]] > > Sent: Monday, October 14, 2002 2:32 PM > > To: Kwabbi, Seth > > Cc: '[EMAIL PROTECTED]' > > Subject: Re: Wrong ELF Class when running make for DBD-Oracle-1.12 > > module > > > > > > You can't link against the 64-bit version unless your Perl (and by > > extension all modules including DBI and DBD::Oracle) is built with maximal > > 64-bit support. > > > > The problem is that it is not possible to "mix and match" linking 32-bit > > and 64-bit libraries. If you do build your Perl as 64-bit, you will then > > no longer be able to link it to any 32-bit libraries (including everything > > in /opt/sfw/lib and any libraries that are not explicitly 64-bit) unless > > you build 64-bit versions of those libraries. > > > > Hope this helps. > > > > On Mon, 14 Oct 2002, Kwabbi, Seth wrote: > > > > > When running make for the DBD-Oracle-1.12 module, I encounter this > > > error: > > > > > > ld: fatal: file /u01/app/oracle/product/9.0.1/lib//libclntsh.so: wrong > > ELF > > > class: ELFCLASS64 > > > > > > My environment Solaris 2.8 ( 64 Bit ) and using gcc compiler version > > > 2.95.3 20010315 ( release). Also know if I set LD_LIBRARY_PATH to point > > > to the Oracle lib32 libraries it will work, howver I prefer "make" to > > > use the 64 Bit version. > > > > > > Does anyone know what causes this problem ? > > > > > > Cheers. > > > > > > Seth Kwabbi > > > > > > ACS - DSS > > > Atlanta, Ga > > > > > > > > > > - D > > > > <[EMAIL PROTECTED]> > > > > - D > > <[EMAIL PROTECTED]> > - D <[EMAIL PROTECTED]>