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

Reply via email to