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