Hi all-

I'm trying to compile the Perl DBD::Oracle on Solaris 9 64-bit against Oracle 9.2.0.1.0 and am having marked problems getting it to link and run. I get either:

1) on link, "bad elf class: ELFCLASS32", or

2) on run, "bad elf class: ELFCLASS64"

That is, if I force it to 32-bit, it won't link. But if I force it to 64
bit, it links great, but on run ld.so.1 whines and craps out. I get the same results with either gcc or SUNW cc.


Here is the relevant error stuff from a 64-bit build (what I really need), as brief as possible. Note that "gcc -m64" fails identically:

$ make
cc -xarch=v9 -c -I. -I/dhpg/pkgs/oracle_v9.2.0.1.0/orahome1/precomp/public -I/dhpg/pkgs/oracle_v9.2.0.1.0/orahome1/rdbms/public -I/dhpg/pkgs/oracle_v9.2.0.1.0/orahome1/rdbms/demo -I/dhpg/pkgs/oracle_v9.2.0.1.0/orahome1/plsql/public -I/dhpg/pkgs/oracle_v9.2.0.1.0/orahome1/network/public -I/dhpg/pkgs/oracle_v9.2.0.1.0/orahome1/rdbms/demo -I/dhpg/pkgs/oracle_v9.2.0.1.0/orahome1/rdbms/public -I/dhpg/pkgs/oracle_v9.2.0.1.0/orahome1/rdbms/demo -I/usr/perl5/site_perl/5.6.1/sun4-solaris-64int/auto/DBI -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DVERSION=\"1.14\" -DXS_VERSION=\"1.14\" -I/usr/perl5/5.6.1/lib/sun4-solaris-64int/CORE -DUTF8_SUPPORT oci7.c


[snip]

LD_RUN_PATH="/dhpg/pkgs/oracle_v9.2.0.1.0/orahome1/lib:/dhpg/pkgs/oracle_v9.2.0.1.0/orahome1/rdbms/lib" cc -xarch=v9 -G Oracle.o dbdimp.o oci7.o oci8.o -L/dhpg/pkgs/oracle_v9.2.0.1.0/orahome1/lib/ -lclntsh -lnbeq9 -lnhost9 -lnus9 -lnldap9 -lldapclnt9 -lnsslb9 -lnoname9 -lntcp9 -lntcps9 -lnsslb9 -lntcp9 -lntns9 -lnsl -lsocket -lgen -ldl -R/dhpg/pkgs/oracle_v9.2.0.1.0/orahome1/lib -laio -lposix4 -lm -lthread -o blib/arch/auto/DBD/Oracle/Oracle.so

$ make test
t/ph_type...........Can't load 'blib/arch/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: ld.so.1: /usr/bin/perl: fatal: blib/arch/auto/DBD/Oracle/Oracle.so: wrong ELF class: ELFCLASS64 at /usr/perl5/5.6.1/lib/sun4-solaris-64int/DynaLoader.pm line 206.



Thanks a ton for any help...


Nate Wiger
Sun Microsystems



Reply via email to