Building 32bit DBD::Oracle against 64bit Oracle
- From: dreso@xxxxxxxx (Dennis Reso)
- Date: Wed, 09 Jul 2008 17:44:15 -0400
Building DBD::Oracle v1.21 against Perl 5.8.5 Oracle 9.2.0.4 Solaris 8
Got the dreaded "wrong ELF class" when the Oracle.so ends up built
against the 64bit library instead of the one in $ORACLE_HOME/lib32.
Use 'dump -vL Oracle.so' to see the internalized RPATH definition.
Tried the following solution, widely posted, without success:
perl Makefile.PL -m $ORACLE_HOME/rdbms/demo/demo_rdbms32.mk
What worked for me (pass the LIBDIR to the Oracle make process):
export ORACLE_HOME=/apps/Oracle9.2.0.4
export LD_LIBRARY_PATH=$ORACLE_HOME/lib32
perl -pi -e 's/CC=true/CC=true LIBDIR=lib32/' Makefile.PL
perl Makefile.PL -m $ORACLE_HOME/rdbms/demo/demo_rdbms32.mk
make
The LIBDIR= is defined in $ORACLE_HOME/rdbms/lib/env_rdbms.mk which
also includes a REDEFINES32= that overrides it, but is only used by
the $ORACLE_HOME/rdbms/lib/ins_rdbms.mk. Oracle bug?
Also repeated the same failure and success with
Oracle 9.2.0.8 Solaris 10
Oracle 10.2.0.3 Solaris 10
Seems fixed in demo_rdbms32.mk (no Makefile.PL edit needed ) as of
Oracle 10.2.0.4 Solaris 10
Probably also fixed in some patchset newer than 9.2.0.4.
--
Dennis Reso <dreso@xxxxxxxxxxx>
.
- Prev by Date: Re: DBI 1.605 $dbh->ping crashes Perl (seg fault) when autoreconnect=1 and connection goes away (at least with DBD::mysql)
- Next by Date: Script failing while using PREPARE.
- Previous by thread: DBI 1.605 $dbh->ping crashes Perl (seg fault) when autoreconnect=1 and connection goes away (at least with DBD::mysql)
- Next by thread: Script failing while using PREPARE.
- Index(es):
Relevant Pages
|