----- Forwarded message from [EMAIL PROTECTED] ----- X-IP: 216.150.208.7 From: [EMAIL PROTECTED] To: Tim Bunce <[EMAIL PROTECTED]> Subject: Re: DBD::Oracle won't install for Oracle 10G XE Date: Mon, 13 Aug 2007 22:42:59 -0700 X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6,gzip(gfe),gzip(gfe)
On Nov 21 2005, 6:34 pm, [EMAIL PROTECTED] (Tim Bunce) wrote: > On Mon, Nov 14, 2005 at 02:49:02AM +0530, Anup Singh wrote: > > Hello, > > > Tried installingDBD::Oracleon Linux withOracle10GXEbut it failed. > > I've implemented support forXEin the next release. Can't say when > that'll be, but here's a patch that may work for you... > (Might need to be applied by hand to your Makefile.PL) > > Please (everyone) let me know if this works for you, or not. > Thanks. > > Tim. > > ---dbd-oracle/branches/pythian/Makefile.PL (original) > +++dbd-oracle/branches/pythian/Makefile.PL Sun Nov 20 14:54:09 2005 > @@ -327,6 +327,31 @@ elsif ($::opt_l and # use -l to enable t > my $inc = join " ", map { "-I$OH/$_" } @h_dirs; > $opts{INC} = "$inc -I$dbi_arch_dir"; > } > + > +elsif (-e "$OH/rdbms/demo/demo_xe.mk") { #OracleXE > + > + print "Looks likeOracleXE\n"; > + > + fetch_oci_macros("$OH/rdbms/demo/demo_xe.mk"); > + $MK{CCINCLUDES} = '-I$(ICINCHOME)'; # undo odd refinition in demo_xe.mk > + > + # From linuxOracleXE(10.2.0): > + # ICINCHOME=$(ORACLE_HOME)/rdbms/public/ > + # ICLIBHOME=$(ORACLE_HOME)/lib/ > + # ICLIBPATH=-L$(ICLIBHOME) > + # THREADLIBS=-lpthread [initially -lthread then redefined] > + # CCLIB=$(ICLIBPATH) -lclntsh $(THREADLIBS) > + # CCINCLUDES = -I$(ICINCHOME) [see above] > + # CCFLAGS=$(CCINCLUDES) -DLINUX -D_GNU_SOURCE -D_REENTRANT -g > [initially without -DLINUX -D_GNU_SOURCE] > + my $cclib = expand_mkvars($MK{CCLIB}, 0, 1); > + my $ccflags = expand_mkvars($MK{CCFLAGS}, 0, 1); > + > + $linkwith_msg = "$cclib"; > + $opts{LIBS} = [ $cclib ]; > + $opts{INC} = "-I$dbi_arch_dir $ccflags"; > + $opts{dynamic_lib} = { OTHERLDFLAGS => "$::opt_g" }; > +} > + > # --- special case forOracle10g instant client > > elsif (-e "$OH/libclntsh.so.10.1") { Hi Tim, I am a great fan, thanks for all your hard work over the years. I am running suse 10.2, a dump of the environment shows CPU=x86_64 MACHTYPE=x86_64-suse-linux ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server perl -V Summary of my perl5 (revision 5 version 8 subversion 8) configuration: Platform: osname=linux, osvers=2.6.18, archname=x86_64-linux-thread-multi uname='linux eisler 2.6.18 #1 smp tue nov 21 12:59:21 utc 2006 x86_64 x86_64 x86_64 gnulinux ' config_args='-ds -e -Dprefix=/usr -Dvendorprefix=/usr - Dinstallusrbinperl -Dusethreads -Di_db -D i_dbm -Di_ndbm -Di_gdbm -Duseshrplib=true -Doptimize=-O2 -fmessage- length=0 -Wall -D_FORTIFY_SOURCE= 2 -g -Wall -pipe' hint=recommended, useposix=true, d_sigaction=define usethreads=define use5005threads=undef useithreads=define usemultiplicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=define use64bitall=define uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS - DDEBUGGING -fno-strict-aliasi ng -pipe -Wdeclaration-after-statement -D_LARGEFILE_SOURCE - D_FILE_OFFSET_BITS=64', optimize='-O2 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -g - Wall -pipe', cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS - DDEBUGGING -fno-strict-aliasing -pipe -Wdeclaration-after-statement' ccversion='', gccversion='4.1.2 20061115 (prerelease) (SUSE Linux)', gccosandvers='' intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='cc', ldflags =' -L/usr/local/lib64' libpth=/lib64 /usr/lib64 /usr/local/lib64 libs=-lm -ldl -lcrypt -lpthread perllibs=-lm -ldl -lcrypt -lpthread libc=/lib64/libc-2.5.so, so=so, useshrplib=true, libperl=libperl.so gnulibc_version='2.5' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E - Wl,-rpath,/usr/lib/perl5/5.8.8 /x86_64-linux-thread-multi/CORE' cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib64' Characteristics of this binary (from libperl): Compile-time options: DEBUGGING MULTIPLICITY PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP THREADS_HAVE_PIDS USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API Built under linux Compiled at Nov 25 2006 11:02:03 @INC: /usr/lib/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 /usr/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl I installed oracle XE via the RPM file oracle-xe-10.2.0.1-1.0.i386.rpm the install worked fine and oracles apex web environment accesses the sample database just fine from apache. I had this installed on my previous machine running suse 10.1 which was 32 bit. In that case the DBD Oracle Module worked fine. I tried unsuccessfully to build the DBD::Oracle on my current 64 bit environment I applied your patch to the Makefile and ran with the following results: # perl Makefile.PL Using DBI 1.52 (for perl 5.008008 on x86_64-linux-thread-multi) installed in /usr/lib/perl5/vendor_perl/5.8.8/x86_64-linux-thread- multi/auto/DBI/ Configuring DBD::Oracle for perl 5.008008 on linux (x86_64-linux- thread-multi) Remember to actually *READ* the README file! Especially if you have any problems. Using Oracle in /usr/lib/oracle/xe/app/oracle/product/10.2.0/server DEFINE _SQLPLUS_RELEASE = "1002000100" (CHAR) Oracle version 10.2.0.1 (10.2) Looks like Oracle XE Reading /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/demo/ demo_xe.mk Checking for functioning wait.ph Constant subroutine __USE_POSIX undefined at /usr/lib/perl5/ vendor_perl/5.8.8/x86_64-linux-thread-multi/features.ph line 8. Constant subroutine __USE_POSIX2 undefined at /usr/lib/perl5/ vendor_perl/5.8.8/x86_64-linux-thread-multi/features.ph line 9. Constant subroutine __USE_POSIX199309 undefined at /usr/lib/perl5/ vendor_perl/5.8.8/x86_64-linux-thread-multi/features.ph line 10. Constant subroutine __USE_POSIX199506 undefined at /usr/lib/perl5/ vendor_perl/5.8.8/x86_64-linux-thread-multi/features.ph line 11. Constant subroutine __USE_XOPEN undefined at /usr/lib/perl5/ vendor_perl/5.8.8/x86_64-linux-thread-multi/features.ph line 12. Constant subroutine __USE_XOPEN_EXTENDED undefined at /usr/lib/perl5/ vendor_perl/5.8.8/x86_64-linux-thread-multi/features.ph line 13. Constant subroutine __USE_UNIX98 undefined at /usr/lib/perl5/ vendor_perl/5.8.8/x86_64-linux-thread-multi/features.ph line 14. Constant subroutine __USE_LARGEFILE undefined at /usr/lib/perl5/ vendor_perl/5.8.8/x86_64-linux-thread-multi/features.ph line 16. Constant subroutine __USE_LARGEFILE64 undefined at /usr/lib/perl5/ vendor_perl/5.8.8/x86_64-linux-thread-multi/features.ph line 17. Constant subroutine __USE_FILE_OFFSET64 undefined at /usr/lib/perl5/ vendor_perl/5.8.8/x86_64-linux-thread-multi/features.ph line 18. Constant subroutine __USE_BSD undefined at /usr/lib/perl5/vendor_perl/ 5.8.8/x86_64-linux-thread-multi/features.ph line 19. Constant subroutine __USE_SVID undefined at /usr/lib/perl5/vendor_perl/ 5.8.8/x86_64-linux-thread-multi/features.ph line 20. Constant subroutine __USE_MISC undefined at /usr/lib/perl5/vendor_perl/ 5.8.8/x86_64-linux-thread-multi/features.ph line 21. Constant subroutine __USE_GNU undefined at /usr/lib/perl5/vendor_perl/ 5.8.8/x86_64-linux-thread-multi/features.ph line 23. Constant subroutine __USE_REENTRANT undefined at /usr/lib/perl5/ vendor_perl/5.8.8/x86_64-linux-thread-multi/features.ph line 24. Constant subroutine _POSIX_SOURCE undefined at /usr/lib/perl5/ vendor_perl/5.8.8/x86_64-linux-thread-multi/features.ph line 49. Constant subroutine _POSIX_C_SOURCE undefined at /usr/lib/perl5/ vendor_perl/5.8.8/x86_64-linux-thread-multi/features.ph line 51. Constant subroutine _XOPEN_SOURCE undefined at /usr/lib/perl5/ vendor_perl/5.8.8/x86_64-linux-thread-multi/features.ph line 53. Constant subroutine _XOPEN_SOURCE_EXTENDED undefined at /usr/lib/perl5/ vendor_perl/5.8.8/x86_64-linux-thread-multi/features.ph line 55. Constant subroutine _LARGEFILE64_SOURCE undefined at /usr/lib/perl5/ vendor_perl/5.8.8/x86_64-linux-thread-multi/features.ph line 57. Constant subroutine _LARGEFILE_SOURCE undefined at /usr/lib/perl5/ vendor_perl/5.8.8/x86_64-linux-thread-multi/features.ph line 104. Constant subroutine __GNU_LIBRARY__ undefined at /usr/lib/perl5/ vendor_perl/5.8.8/x86_64-linux-thread-multi/features.ph line 156. Scalar found where operator expected at (eval 213) line 1, near "'int' $__val" (Missing operator before $__val?) Hexadecimal number > 0xffffffff non-portable at (eval 244) line 1. Hexadecimal number > 0xffffffff non-portable at (eval 245) line 1. Constant subroutine __need_timeval undefined at /usr/lib/perl5/ vendor_perl/5.8.8/x86_64-linux-thread-multi/bits/time.ph line 23. System: perl5.008008 linux eisler 2.6.18 #1 smp tue nov 21 12:59:21 utc 2006 x86_64 x86_64 x86_64 gnulinux Compiler: cc -O2 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -g - Wall -pipe -D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING - fno-strict-aliasing -pipe -Wdeclaration-after-statement - D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 Linker: /usr/bin/ld Sysliblist: -ldl -lm -lpthread -lnsl -lirc Oracle makefiles would have used these definitions but we override them: CC: /usr/bin/g++296 LDFLAGS: -g [-g] Linking with -L/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/ lib/ -lclntsh -lpthread Checking if your kit is complete... Looks good LD_RUN_PATH=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib Using DBD::Oracle 1.19. Using DBD::Oracle 1.19. Using DBI 1.52 (for perl 5.008008 on x86_64-linux-thread-multi) installed in /usr/lib/perl5/vendor_perl/5.8.8/x86_64-linux-thread- multi/auto/DBI/ Writing Makefile for DBD::Oracle *** If you have problems... read all the log printed above, and the README and README.help.txt files. (Of course, you have read README by now anyway, haven't you?) and yes I did read the README running make however gives me the same error as before: # make cp Oracle.pm blib/lib/DBD/Oracle.pm cp mkta.pl blib/lib/DBD/mkta.pl cp oraperl.ph blib/lib/oraperl.ph cp dbdimp.h blib/arch/auto/DBD/Oracle/dbdimp.h cp ocitrace.h blib/arch/auto/DBD/Oracle/ocitrace.h cp Oraperl.pm blib/lib/Oraperl.pm cp Oracle.h blib/arch/auto/DBD/Oracle/Oracle.h cp mk.pm blib/arch/auto/DBD/Oracle/mk.pm cp lib/DBD/Oracle/GetInfo.pm blib/lib/DBD/Oracle/GetInfo.pm /usr/bin/perl -p -e "s/~DRIVER~/Oracle/g" /usr/lib/perl5/vendor_perl/ 5.8.8/x86_64-linux-thread-multi/auto/DBI/Driver.xst > Oracle.xsi /usr/bin/perl /usr/lib/perl5/5.8.8/ExtUtils/xsubpp -typemap /usr/lib/ perl5/5.8.8/ExtUtils/typemap -typemap typemap Oracle.xs > Oracle.xsc && mv Oracle.xsc Oracle.c cc -c -I/usr/lib/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/ auto/DBI -I/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/ public/ -DLINUX -D_GNU_SOURCE -D_REENTRANT -g -D_REENTRANT - D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing - pipe -Wdeclaration-after-statement -D_LARGEFILE_SOURCE - D_FILE_OFFSET_BITS=64 -O2 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -g -Wall -pipe -DVERSION=\"1.19\" -DXS_VERSION=\"1.19\" -fPIC "-I/ usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE" -Wall -Wno- comment -DUTF8_SUPPORT -DNEW_OCI_INIT -DORA_OCI_VERSION=\"10.2.0.1\" Oracle.c cc -c -I/usr/lib/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/ auto/DBI -I/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/ public/ -DLINUX -D_GNU_SOURCE -D_REENTRANT -g -D_REENTRANT - D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing - pipe -Wdeclaration-after-statement -D_LARGEFILE_SOURCE - D_FILE_OFFSET_BITS=64 -O2 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -g -Wall -pipe -DVERSION=\"1.19\" -DXS_VERSION=\"1.19\" -fPIC "-I/ usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE" -Wall -Wno- comment -DUTF8_SUPPORT -DNEW_OCI_INIT -DORA_OCI_VERSION=\"10.2.0.1\" dbdimp.c dbdimp.c: In function ?ora_db_login6?: dbdimp.c:700: warning: value computed is not used dbdimp.c: In function ?dbd_rebind_ph_char?: dbdimp.c:1110: warning: value computed is not used dbdimp.c: In function ?ora_st_execute_array?: dbdimp.c:1985: warning: value computed is not used cc -c -I/usr/lib/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/ auto/DBI -I/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/rdbms/ public/ -DLINUX -D_GNU_SOURCE -D_REENTRANT -g -D_REENTRANT - D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing - pipe -Wdeclaration-after-statement -D_LARGEFILE_SOURCE - D_FILE_OFFSET_BITS=64 -O2 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -g -Wall -pipe -DVERSION=\"1.19\" -DXS_VERSION=\"1.19\" -fPIC "-I/ usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE" -Wall -Wno- comment -DUTF8_SUPPORT -DNEW_OCI_INIT -DORA_OCI_VERSION=\"10.2.0.1\" oci8.c oci8.c: In function ?fetch_func_rset?: oci8.c:652: warning: value computed is not used oci8.c: In function ?dbd_rebind_ph_lob?: oci8.c:748: warning: value computed is not used oci8.c:779: warning: value computed is not used oci8.c: In function ?ora_blob_read_mb_piece?: oci8.c:889: warning: comparison is always false due to limited range of data type oci8.c: In function ?ora_describe?: oci8.c:1391: warning: comparison is always false due to limited range of data type oci8.c: In function ?post_execute_lobs?: oci8.c:2246: warning: value computed is not used Running Mkbootstrap for DBD::Oracle () chmod 644 Oracle.bs rm -f blib/arch/auto/DBD/Oracle/Oracle.so LD_RUN_PATH="/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib" cc -shared -L/usr/local/lib64 Oracle.o dbdimp.o oci8.o -o blib/arch/ auto/DBD/Oracle/Oracle.so \ -L/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib/ - lclntsh -lpthread \ /usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../../x86_64-suse-linux/ bin/ld: skipping incompatible /usr/lib/oracle/xe/app/oracle/product/ 10.2.0/server/lib//libclntsh.so when searching for -lclntsh /usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../../x86_64-suse-linux/ bin/ld: cannot find -lclntsh collect2: ld returned 1 exit status make: *** [blib/arch/auto/DBD/Oracle/Oracle.so] Error 1 The sym links are there pointing to the correct .so file for libclntsh.so. But the linker indicates that this library is incompatible. I am not sure where to proceed from here. Any help would be appreciated. -- jim ----- End forwarded message -----