Question:

The newer versions of Oracle on LINUX are 32 bit and will be so for a while. There are 64 bit versions for LINUX as well. Hopefully the new DBD-Oracle will be "backwards compatible". Will this be the case Tim?

Kevin

Harter, Douglas wrote:

This problem is becoming more and more of a faq. I talked to Tim, the maintainer of 
DBD-Oracle and he said there is
a new release in the works.

Your problem is caused because Oracle 9.2.0 uses 64 bit. This is what caused your 'wrong ELF class' error. You will have to go thru the Makefile and change every instance of 9.2.0/lib to 9.2.0/lib32. I also got a problem because there are 2 -o options in some of the commands. (-o build and -o file-name). I had to delete the '-o build' options from the makefile also. It then did a good make for me and I was able to make install. Oraperl seems to work OK, but I am not sure whether removing the -o build will cause problems down the road. That question was asked on the list once before, but I have not found an answer.




-----Original Message-----
From: Gulácsi Tamás [mailto:[EMAIL PROTECTED]
Sent: Wednesday, October 01, 2003 8:47 AM
To: [EMAIL PROTECTED]
Subject: DBD-Oracle fails to install


Dear Sir,


I've used your DBI-1.38 and DBD-Oracle-1.14 on AIX 4.3, Oracle Database 8.1.7 without any problems (except for the perl shipped with that ancient AIX, but that's another story).
Now the machine was upgraded: got AIX 5.2 with perl 5.8.0 and Oracle Database 9.2.0 and DBI installs without notice, but DBD-Oracle aborts with som linking problems about Oracle.so


The same is produced on a Sun UltraSparc 10 with Solaris 9, perl 5.6.1 - here is the log file of the install of DBD-1.12 ('cause CPAN says this had been tested on Solaris):


perl -V


Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
Platform:
osname=solaris, osvers=2.9, archname=sun4-solaris-64int
uname='sunos localhost 5.9 sun4u sparc sunw,ultra-1'
config_args=''
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=define use64bitall=undef uselongdouble=undef
Compiler:
cc='cc', ccflags ='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-xO3 -xdepend',
cppflags=''
ccversion='Sun WorkShop', gccversion='', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=87654321
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, usemymalloc=n, prototype=define
Linker and Libraries:
ld='cc', ldflags =''
libpth=/lib /usr/lib /usr/ccs/lib
libs=-lsocket -lnsl -ldl -lm -lc
perllibs=-lsocket -lnsl -ldl -lm -lc
libc=/lib/libc.so, so=so, useshrplib=true, libperl=libperl.so
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-R /usr/perl5/5.6.1/lib/sun4-solaris-64int/CORE'
cccdlflags='-KPIC', lddlflags='-G'



Characteristics of this binary (from libperl): Compile-time options: USE_64_BIT_INT USE_LARGE_FILES
Locally applied patches:
9676 Port the OpenBSD glob() security patch
9678 Addendum to #9676: some missing changes from OpenBSD glob.c
9679 Up $File::Glob::VERSION, add OpenBSD glob version note
9693 $VERSION and Version() on same line provokes CPAN.pm warning
9706 #7210 broke .packlist generation
9707 ExtUtils::Installed doesn't quote regex metacharacters in paths
9775 Typo in utf8.h
9950 Revert integration of #8254,#8255 in #8620 (causes coredump)
10021 Insecure regexes
10091 $ref1 == $ref2 behaves unpredictably if not NV_PRESERVES_UV
10093 Incorrect line numbers in AutoSplit
10100 [20010514.027] PL_last_in_gv may not be GV if stale filehandle
10145 [20010515.004] Segfaults from premature GC
10203 Don't think about UTF8
10250 [20010422.005] perl -e '{s//${}/; //}' segfaults
10394 Leakage of file scope lexicals into predeclared subroutines
10404 eval.t was relying on pre-#10394 buggy behavior
10412 Rationalize locale handling to fix bugs uncovered by #10394
10422 Potential buffer overrun if the radix separator > 1 byte
10448 Lexicals outside eval weren't resolved correctly pre-#10394
10450 Optimize #10448 slightly
10543 Add LC_MESSAGES constant to POSIX module
10667 #10449 broke visibility of lexicals inside DB::DB()
10739 C<eval "/x$\r\n/x"> fails to compile correctly
10939 Proposed fix for Pod::Man
11169 Doc patch for Tie::Hash
11374 Make h2ph grok ccsymbols fo the form 1234L, 1234ULL etc
11427 t/harness wasn't picking up all the tests
11428 run/runenv.t needs fflushNULL sanity
11431 pod/*.t tests not picked up by t/TEST either
11510 eval 'format foo=' would loop indefinitely
11713 UTF8 wasn't printing for PVMGs
11716 UTF8 flag should be meaningful only when POK
11808 [20010831.002] Bug in Term::Cap on Solaris ansi terminal
11847 Typo in perl_clone() code causes local(*foo) breakage
12005 [20010912.007] substr reference core dump
12024 Fix local() precedence bug in #8311
12303 Fix 'local $!=0;undef*STDOUT;' segfault
12304 Pod::Html makes a poor guess at author
12350 Typo in IO::Seekable doc
12496 Carp::shortmess_heavy() doesn't notice trailing newline
12549 readline() doesn't work with 'our' variables
12550 #12549 wasn't aware of strictures
12752 croak(Nullch) wasn't printing the contents of ERRSV
12811 [20011101.069] \stat('.') gives 'free unref scalar' error
12812 Slight modification of #12811
13149 Integrate #13147 from mainline (fixes nit in #10091)
13261 Integrate #8340,#13260 from mainline
Built under solaris
Compiled at Apr 6 2002 14:45:34
@INC:
/usr/perl5/5.6.1/lib/sun4-solaris-64int
/usr/perl5/5.6.1/lib
/usr/perl5/site_perl/5.6.1/sun4-solaris-64int
/usr/perl5/site_perl/5.6.1
/usr/perl5/site_perl
/usr/perl5/vendor_perl/5.6.1/sun4-solaris-64int
/usr/perl5/vendor_perl/5.6.1
/usr/perl5/vendor_perl
.


make realclean

rm -f blib/script/ora_explain
rm -rf Oracle.c Oracle.xsi dll.base dll.exp sqlnet.log libOracle.def ora_explain mk.pm ./blib Makefile.aperl blib/arch/auto/DBD/Oracle/extralibs.all perlmain.c mon.out core core.*perl.*.? *perl.core so_locations pm_to_blib *.o *.a perl.exe Oracle.bs Oracle.bso Oracle.def Oracle.exp
mv Makefile Makefile.old > /dev/null 2>&1
rm -rf blib/lib/auto/DBD/Oracle blib/arch/auto/DBD/Oracle
rm -f blib/arch/auto/DBD/Oracle/Oracle.so blib/arch/auto/DBD/Oracle/Oracle.bs
rm -f blib/arch/auto/DBD/Oracle/Oracle.a
rm -f blib/lib/oraperl.ph blib/lib/DBD/Oracle.pm blib/arch/auto/DBD/Oracle/dbdimp.h
rm -f blib/arch/auto/DBD/Oracle/mk.pm blib/arch/auto/DBD/Oracle/ocitrace.h
rm -f blib/arch/auto/DBD/Oracle/Oracle.h blib/lib/Oraperl.pm
rm -rf Makefile Makefile.old
perl Makefile.PL
Using DBI 1.38 installed in /usr/perl5/site_perl/5.6.1/sun4-solaris-64int/auto/DBI


Configuring DBD::Oracle ...



Remember to actually *READ* the README file!


Especially if you have any problems.

Using Oracle in /u01/app/oracle/product/9.2.0
Found header files in rdbms/demo.
Found /u01/app/oracle/product/9.2.0/rdbms/demo/demo_rdbms.mk
Found /u01/app/oracle/product/9.2.0/otrace/demo/atmoci.mk
Using /u01/app/oracle/product/9.2.0/rdbms/demo/demo_rdbms.mk
Reading /u01/app/oracle/product/9.2.0/rdbms/demo/demo_rdbms.mk.
Reading /u01/app/oracle/product/9.2.0/rdbms/lib/env_rdbms.mk.
Appending '/u01/app/oracle/product/9.2.0/rdbms/lib/libskgxpd.a /u01/app/oracle/product/9.2.0/rdbms/lib/libskgxpu.a /u01/app/oracle/product/9.2.0/rdbms/lib/libskgxpt.a' to EXTRALIBS
Appending '$(LIBHOME)libskgxp9.so' to SHLIBS
Appending '/u01/app/oracle/product/9.2.0/rdbms/lib/libskgxp9.a' to LIBS
Appending '/u01/app/oracle/product/9.2.0/rdbms/lib/libskgxns.a /u01/app/oracle/product/9.2.0/rdbms/lib/libskgxnd.a /u01/app/oracle/product/9.2.0/rdbms/lib/libskgxnr.a' to EXTRALIBS
Appending '$(LIBHOME)libskgxn9.so' to SHLIBS
Appending '/u01/app/oracle/product/9.2.0/rdbms/lib/libskgxn9.a' to LIBS
Evaluating `cat $(LIBHOME)sysliblist`
expanded `cat /u01/app/oracle/product/9.2.0/lib/sysliblist`
returned '-lnsl -lsocket -lgen -ldl'


Attempting to discover Oracle OCI build rules...
cc -c DBD_ORA_OBJ.c
Oracle oci build command:
echo -L/opt/SUNWcluster/lib -R/opt/SUNWcluster/lib -o build -L/u01/app/oracle/product/9.2.0/rdbms/lib/ -L/u01/app/oracle/product/9.2.0/lib/ -o DBD_ORA_EXE DBD_ORA_OBJ.o -lclntsh `cat /u01/app/oracle/product/9.2.0/lib/ldflags` `cat /u01/app/oracle/product/9.2.0/lib/sysliblist` -R/u01/app/oracle/product/9.2.0/lib -laio -lposix4 -lkstat -lm -lthread
-L/opt/SUNWcluster/lib -R/opt/SUNWcluster/lib -o build -L/u01/app/oracle/product/9.2.0/rdbms/lib/ -L/u01/app/oracle/product/9.2.0/lib/ -o DBD_ORA_EXE DBD_ORA_OBJ.o -lclntsh -lnbeq9 -lnhost9 -lnus9 -lnldap9 -lldapclnt9 -lnsslb9 -lnnis9 -lnoname9 -lntcp9 -lntcps9 -lnsslb9 -lntcp9 -lntns9 -lnsl -lsocket -lgen -ldl -R/u01/app/oracle/product/9.2.0/lib -laio -lposix4 -lkstat -lm -lthread
Unable to interpret Oracle oci build commands. Using fallback approach.



System: perl5.006001 sunos localhost 5.9 sun4u sparc sunw,ultra-1
Compiler: cc -xO3 -xdepend -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
Linker: /usr/ccs/bin/ld
Sysliblist: -lnsl -lsocket -lgen -ldl Oracle makefiles would have used these definitions but we override them:
CC: cc


CFLAGS: $(GFLAG) $(OPTIMIZE) $(CDEBUG) $(CCFLAGS) $(PFLAGS)\
$(SHARED_CFLAG) $(USRFLAGS)
[$(GFLAG) -xO3 $(CDEBUG) -Xa $(PROFILE) -xstrconst -dalign -xF $(XS) $(MR) -xildoff -errtags=yes -v -xarch=v9 -xchip=ultra3 -W2,-AKNR_S -Wd,-xsafe=unboundsym -Wc,-Qiselect-funcalign=32 -xcode=abs44 -Wc,-Qgsched-trace_late=1 -Wc,-Qgsched-T5 -xalias_level=weak -D_REENTRANT -DSS_64BIT_SERVER -DBIT64 -DMACHINE64 -K PIC -I/u01/app/oracle/product/9.2.0/rdbms/demo -I/u01/app/oracle/product/9.2.0/rdbms/public -I/u01/app/oracle/product/9.2.0/plsql/public -I/u01/app/oracle/product/9.2.0/network/public -DSLMXMX_ENABLE -DSLTS_ENABLE -D_SVID_GETTOD -D_REENTRANT $(LPFLAGS) $(USRFLAGS)]


build: $(LDCCOM) $(LIBPATH) -o $(EXE) $(OBJS) $(SHARED_LDCLIENTLIBS) $(LLIBTHREAD)
Evaluating `cat $(LIBHOME)ldflags`
expanded `cat /u01/app/oracle/product/9.2.0/lib/ldflags`
returned '-lnbeq9 -lnhost9 -lnus9 -lnldap9 -lldapclnt9 -lnsslb9 -lnnis9 -lnoname9 -lntcp9 -lntcps9 -lnsslb9 -lntcp9 -lntns9 '
expanded `cat /u01/app/oracle/product/9.2.0/lib/sysliblist`
[ $(ADE_DEL_FILE_CMD) $(PURELINK) $(PURIFY) $(PURECOV) $(QUANTIFY) cc $(GFLAG) -Xa $(PROFILE) -xstrconst -dalign -xF $(XS) $(MR) -xildoff -errtags=yes -v -xarch=v9 -xchip=ultra3 -W2,-AKNR_S -Wd,-xsafe=unboundsym -Wc,-Qiselect-funcalign=32 -xcode=abs44 -Wc,-Qgsched-trace_late=1 -Wc,-Qgsched-T5 -xalias_level=weak -D_REENTRANT -DSS_64BIT_SERVER -DBIT64 -DMACHINE64 -K PIC -L/opt/SUNWcluster/lib -R/opt/SUNWcluster/lib -o $@ -L/u01/app/oracle/product/9.2.0/rdbms/lib/ -L$(LIBHOME) $(LIBPATH) -o $(EXE) $(OBJS) -lclntsh -lnbeq9 -lnhost9 -lnus9 -lnldap9 -lldapclnt9 -lnsslb9 -lnnis9 -lnoname9 -lntcp9 -lntcps9 -lnsslb9 -lntcp9 -lntns9 $(EXPDLIBS) $(EXOSLIBS) -lnsl -lsocket -lgen -ldl -R/u01/app/oracle/product/9.2.0/lib -laio $(THREADLIBS) -lposix4 -lkstat -lm $(USRLIBS) -lthread]


LDFLAGS: -o $@ $(LDPATHFLAG)$(PRODLIBHOME) $(LDPATHFLAG)$(LIBHOME)
[-o $@ -L/u01/app/oracle/product/9.2.0/rdbms/lib/ -L$(LIBHOME)]



Linking with /u01/app/oracle/product/9.2.0/rdbms/lib/defopt.o -lclntsh -lnsl -lsocket -lgen -ldl -R/u01/app/oracle/product/9.2.0/lib -laio -lposix4 -lkstat -lm -lthread [from $(DEF_OPT) $(OCISHAREDLIBS)]



Checking if your kit is complete...
Looks good
LD_RUN_PATH=/u01/app/oracle/product/9.2.0/lib
Using DBD::Oracle 1.12.
Using DBI 1.38 installed in /usr/perl5/site_perl/5.6.1/sun4-solaris-64int/auto/DBI
Writing Makefile for DBD::Oracle


*** If you have problems...
read all the log printed above, and the README and README.help files.
(Of course, you have read README by now anyway, haven't you?)



make


cp oraperl.ph blib/lib/oraperl.ph
cp Oracle.pm blib/lib/DBD/Oracle.pm
cp mk.pm blib/arch/auto/DBD/Oracle/mk.pm
cp dbdimp.h blib/arch/auto/DBD/Oracle/dbdimp.h
cp ocitrace.h blib/arch/auto/DBD/Oracle/ocitrace.h
cp Oracle.h blib/arch/auto/DBD/Oracle/Oracle.h
cp Oraperl.pm blib/lib/Oraperl.pm
/bin/sh -c true
/bin/sh -c true
/usr/bin/perl -p -e "s/~DRIVER~/Oracle/g"


/usr/perl5/site_perl/5.6.1/sun4-solaris-64int/auto/DBI/Driver.xst > > Oracle.xsi


/usr/bin/perl -I/usr/perl5/5.6.1/lib/sun4-solaris-64int -I/usr/perl5/5.6.1/lib /usr/perl5/5.6.1/lib/ExtUtils/xsubpp -typemap /usr/perl5/5.6.1/lib/ExtUtils/typemap Oracle.xs > Oracle.xsc && mv Oracle.xsc Oracle.c
cc -c -I/u01/app/oracle/product/9.2.0/rdbms/demo -I/u01/app/oracle/product/9.2.0/rdbms/public -I/u01/app/oracle/product/9.2.0/plsql/public -I/u01/app/oracle/product/9.2.0/network/public -I/u01/app/oracle/product/9.2.0/rdbms/demo -I/u01/app/oracle/product/9.2.0/rdbms/demo -I/usr/perl5/site_perl/5.6.1/sun4-solaris-64int/auto/DBI -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -xO3 -xdepend -DVERSION=\"1.12\" -DXS_VERSION=\"1.12\" -KPIC -I/usr/perl5/5.6.1/lib/sun4-solaris-64int/CORE Oracle.c
cc -c -I/u01/app/oracle/product/9.2.0/rdbms/demo -I/u01/app/oracle/product/9.2.0/rdbms/public -I/u01/app/oracle/product/9.2.0/plsql/public -I/u01/app/oracle/product/9.2.0/network/public -I/u01/app/oracle/product/9.2.0/rdbms/demo -I/u01/app/oracle/product/9.2.0/rdbms/demo -I/usr/perl5/site_perl/5.6.1/sun4-solaris-64int/auto/DBI -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -xO3 -xdepend -DVERSION=\"1.12\" -DXS_VERSION=\"1.12\" -KPIC -I/usr/perl5/5.6.1/lib/sun4-solaris-64int/CORE dbdimp.c
cc -c -I/u01/app/oracle/product/9.2.0/rdbms/demo -I/u01/app/oracle/product/9.2.0/rdbms/public -I/u01/app/oracle/product/9.2.0/plsql/public -I/u01/app/oracle/product/9.2.0/network/public -I/u01/app/oracle/product/9.2.0/rdbms/demo -I/u01/app/oracle/product/9.2.0/rdbms/demo -I/usr/perl5/site_perl/5.6.1/sun4-solaris-64int/auto/DBI -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -xO3 -xdepend -DVERSION=\"1.12\" -DXS_VERSION=\"1.12\" -KPIC -I/usr/perl5/5.6.1/lib/sun4-solaris-64int/CORE oci7.c
cc -c -I/u01/app/oracle/product/9.2.0/rdbms/demo -I/u01/app/oracle/product/9.2.0/rdbms/public -I/u01/app/oracle/product/9.2.0/plsql/public -I/u01/app/oracle/product/9.2.0/network/public -I/u01/app/oracle/product/9.2.0/rdbms/demo -I/u01/app/oracle/product/9.2.0/rdbms/demo -I/usr/perl5/site_perl/5.6.1/sun4-solaris-64int/auto/DBI -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -xO3 -xdepend -DVERSION=\"1.12\" -DXS_VERSION=\"1.12\" -KPIC -I/usr/perl5/5.6.1/lib/sun4-solaris-64int/CORE oci8.c
Running Mkbootstrap for DBD::Oracle ()
chmod 644 Oracle.bs
rm -f blib/arch/auto/DBD/Oracle/Oracle.so
LD_RUN_PATH="/u01/app/oracle/product/9.2.0/lib" cc -G Oracle.o dbdimp.o oci7.o oci8.o /u01/app/oracle/product/9.2.0/rdbms/lib/defopt.o -o blib/arch/auto/DBD/Oracle/Oracle.so -L/u01/app/oracle/product/9.2.0/lib/ -lclntsh -lnsl -lsocket -lgen -ldl -R/u01/app/oracle/product/9.2.0/lib -laio -lposix4 -lkstat -lm -lthread *** Error code 1
ld: fatal: file /u01/app/oracle/product/9.2.0/rdbms/lib/defopt.o: wrong ELF class: ELFCLASS64
ld: fatal: File processing errors. No output written to blib/arch/auto/DBD/Oracle/Oracle.so




So I think the problem is that Oracle 9.2.0 has something 'new'...
Thank you,

Tamás Gulácsi
[EMAIL PROTECTED]







Reply via email to