Skip Menu |

Preferred bug tracker

Please visit the preferred bug tracker to report your issue.

This queue is for tickets about the DBD-Oracle CPAN distribution.

Report information
The Basics
Id: 71343
Status: resolved
Priority: 0/
Queue: DBD-Oracle

People
Owner: Nobody in particular
Requestors: davidl [...] lmert.com
james.freire [...] gmail.com
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: 1.24b
Fixed in: 1.45_00



Subject: [PATCH] last "builds with 9i" version does not build against 9i
Trying to build DBD::Oracle on Windows XP with up-to-date Cygwin and Oracle 9i, I first noticed that 1.30 doesn't build, then read the manpage carefully and realized it's no longer supported. I found a copy of DBD::Oracle 1.24b, tried to build it, that didn't work either: $ make ... gcc-4 -c -IC:/oracle/ora92/oci/include -IC:/oracle/ora92/rdbms/demo -I/usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/DBI -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -g3 -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -DUSEIMPORTLIB -O3 -DVERSION=\"1.30\" -DXS_VERSION=\"1.30\" "-I/usr/lib/perl5/5.10/i686-cygwin/CORE" -Wall -Wno-comment -DUTF8_SUPPORT -DORA_OCI_VERSION=\"9.2.0.1\" Oracle.c ... Oracle.xs: In function 'XS_DBD__Oracle__db_ora_can_taf': Oracle.xs:360:2: error: 'OCI_ATTR_TAF_ENABLED' undeclared (first use in this function) Oracle.xs:360:2: note: each undeclared identifier is reported only once for each function it appears in Oracle.xs:360:2: warning: left-hand operand of comma expression has no effect Oracle.xs:360:2: warning: value computed is not used make: *** [Oracle.o] Error 1 The attached patch appears to allow it to compile, install and run. Perl version (cygcheck -c perl) is 5.10.1-5 OS version is CYGWIN_NT-5.1 1.7.9(0.237/5/3) i686 Cygwin
Subject: fix_for_9i.patch
--- ../DBD-Oracle-1.24/oci8.c 2010-05-26 08:04:13.000000000 -0400 +++ oci8.c 2011-09-29 13:17:09.273631600 -0400 @@ -680,10 +680,12 @@ case OCI_ATTR_RESERVED_13: return "OCI_ATTR_RESERVED_13"; /* reserved */ /* OCI_ATTR_RESERVED_14 */ - +#ifdef OCI_ATTR_RESERVED_15 case OCI_ATTR_RESERVED_15: return "OCI_ATTR_RESERVED_15"; /* reserved */ +#endif +#ifdef OCI_ATTR_RESERVED_16 case OCI_ATTR_RESERVED_16: return "OCI_ATTR_RESERVED_16"; /* reserved */ - +#endif } sv = sv_2mortal(newSViv((IV)attr)); return SvPV(sv,na);
Patch applied on the Github repo. I'm wondering, though, is the patch complete (as it only touches oci8.c) ? Joy, `/anick
Subject: DBD::Oracle 1.32 Compile fails against Oracle 10 on OCI_ATTR_TAF_ENABLED
Date: Fri, 21 Oct 2011 13:19:07 -0400
To: bug-DBD-Oracle [...] rt.cpan.org
From: James Freire <james.freire [...] gmail.com>
TAF was not in version 10 - this was conditionally compiling depending on Oracle version I guess. DBD::Oracle 1.32 compile on Redhat (Linux 2.6.18-238.1.1.el5 #1 SMP Tue Jan 4 13:32:19 EST\ 2011 x86_64 x86_64 x86_64 GNU/Linux). Oracle version 10.1.0.5 (10.1). Same errors occur on 1.28, 1.29 & 1.3 make output: cp Oracle.pm blib/lib/DBD/Oracle.pm 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 lib/DBD/Oracle/Object.pm blib/lib/DBD/Oracle/Object.pm 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/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI/Driver.xst Show quoted text
> 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 gcc -c -I/oracle/software/10.1.0.5.0/rdbms/public -I/oracle/software/10.1.0.5.0//rdbms/demo -I/oracle/software/10.1.0.5.0//rdbms/public -I/oracle/software/10.1.0.5.0//plsql/public -I/oracle/software/10.1.0.5.0//network/public -I/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -DVERSION=\"1.32\" -DXS_VERSION=\"1.32\" -fPIC "-I/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE" -Wall -Wno-comment -DUTF8_SUPPORT -DORA_OCI_VERSION=\"10.1.0.5\" Oracle.c Oracle.c: In function ‘XS_DBD__Oracle__db_ora_db_startup’: Oracle.xs:286: warning: unused variable ‘status’ Oracle.xs:285: warning: unused variable ‘imp_dbh’ Oracle.c:1715: warning: unused variable ‘attribs’ Oracle.c: In function ‘XS_DBD__Oracle__db_ora_db_shutdown’: Oracle.xs:329: warning: unused variable ‘status’ Oracle.xs:328: warning: unused variable ‘imp_dbh’ Oracle.c:1770: warning: unused variable ‘attribs’ Oracle.xs: In function ‘XS_DBD__Oracle__db_ora_can_taf’: Oracle.xs:360: error: ‘OCI_ATTR_TAF_ENABLED’ undeclared (first use in this function) Oracle.xs:360: error: (Each undeclared identifier is reported only once Oracle.xs:360: error: for each function it appears in.) make: *** [Oracle.o] Error 1 perl Makefile.PL looks fine when I run it: Using DBI 1.616 (for perl 5.008008 on x86_64-linux-thread-multi) installed in /usr/lib64/perl5/site_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) Installing on a linux, Ver#2.6 Using Oracle in /oracle/software/10.1.0.5.0 DEFINE _SQLPLUS_RELEASE = "1001000500" (CHAR) Oracle version 10.1.0.5 (10.1) Found /oracle/software/10.1.0.5.0/rdbms/demo/demo_rdbms.mk Found /oracle/software/10.1.0.5.0/rdbms/demo/demo_rdbms64.mk Found /oracle/software/10.1.0.5.0/rdbms/lib/ins_rdbms.mk Using /oracle/software/10.1.0.5.0/rdbms/demo/demo_rdbms.mk Your LD_LIBRARY_PATH env var is set to '/oracle/software/10.1.0.5.0/lib/' Reading /oracle/software/10.1.0.5.0/rdbms/demo/demo_rdbms.mk Reading /oracle/software/10.1.0.5.0//rdbms/lib/env_rdbms.mk Attempting to discover Oracle OCI build rules gcc -c -o DBD_ORA_OBJ.o DBD_ORA_OBJ.c by executing: [make -f /oracle/software/10.1.0.5.0/rdbms/demo/demo_rdbms.mk build ECHODO=echo ECHO=echo GENCLNTSH='echo genclntsh' CC=true OPTIMIZE= CCFLAGS= EXE=DBD_ORA_EXE OBJS=DBD_ORA_OBJ.o] Oracle oci build command: [true -L/oracle/software/10.1.0.5.0//lib/ -L/oracle/software/10.1.0.5.0//rdbms/lib/ -o DBD_ORA_EXE DBD_ORA_OBJ.o -lclntsh `cat /oracle/software/10.1.0.5.0//lib/sysliblist` -ldl -lm ] Found header files in /oracle/software/10.1.0.5.0/rdbms/public. client_version=10.1 DEFINE= -Wall -Wno-comment -DUTF8_SUPPORT -DORA_OCI_VERSION=\"10.1.0.5\" Checking for functioning wait.ph System: perl5.008008 linux x86-005.build.bos.redhat.com 2.6.18-194.8.1.el5 #1 smp wed jun 23 10:52:51 edt 2010 x86_64 x86_64 x86_64 gnulinux Compiler: gcc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm Linker: /usr/bin/ld Sysliblist: -ldl -lm -lpthread -lnsl -lirc Oracle makefiles would have used these definitions but we override them: CC: $(ORACLE_HOME)/bin/ogcc CFLAGS: $(GFLAG) $(OPTIMIZE) $(CDEBUG) $(CCFLAGS) $(PFLAGS)\ $(SHARED_CFLAG) $(USRFLAGS) [$(GFLAG) -O3 $(CDEBUG) $(CCFLAGS) -I/oracle/software/10.1.0.5.0//rdbms/demo -I/oracle/software/10.1.0.5.0//rdbms/public -I/oracle/software/10.1.0.5.0//plsql/public -I/oracle/software/10.1.0.5.0//network/public -DLINUX -D_GNU_SOURCE -D_LARGEFILE64_SOURCE=1 -D_LARGEFILE_SOURCE=1 -DSLTS_ENABLE -DSLMXMX_ENABLE -D_REENTRANT -DNS_THREADS $(LPFLAGS) $(USRFLAGS)] LDFLAGS: -o $@ $(LDPATHFLAG)$(PRODLIBHOME) $(LDPATHFLAG)$(LIBHOME) $(LDPATHFLAG)$(LIBHOME)stubs/ [-o $@ -L/oracle/software/10.1.0.5.0//rdbms/lib/ -L$(LIBHOME) -L$(LIBHOME)stubs/] Linking with OTHERLDFLAGS = -L/oracle/software/10.1.0.5.0//lib/ -L/oracle/software/10.1.0.5.0//rdbms/lib/ -lclntsh `cat /oracle/software/10.1.0.5.0//lib/sysliblist` -ldl -lm [from 'build' rule] Checking if your kit is complete... Warning: the following files are missing in your kit: README.explain.txt Please inform the author. LD_RUN_PATH=/oracle/software/10.1.0.5.0/lib:/oracle/software/10.1.0.5.0/rdbms/lib Using DBD::Oracle 1.32. Using DBD::Oracle 1.32. Using DBI 1.616 (for perl 5.008008 on x86_64-linux-thread-multi) installed in /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/auto/DBI/ Writing Makefile for DBD::Oracle Writing MYMETA.yml and MYMETA.json *** 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?) ################################################### ################################################### perl -V Summary of my perl5 (revision 5 version 8 subversion 8) configuration: Platform: osname=linux, osvers=2.6.18-194.8.1.el5, archname=x86_64-linux-thread-multi uname='linux x86-005.build.bos.redhat.com 2.6.18-194.8.1.el5 #1 smp wed jun 23 10:52:51 edt 2010 x86_64 x86_64 x86_64 gnulinux ' config_args='-des -Doptimize=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Dversion=5.8.8 -Dmyhostname=localhost -Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Red Hat, Inc. -Dinstallprefix=/usr -Dprefix=/usr -Dlibpth=/usr/local/lib64 /lib64 /usr/lib64 -Dprivlib=/usr/lib/perl5/5.8.8 -Dsitelib=/usr/lib/perl5/site_perl/5.8.8 -Dvendorlib=/usr/lib/perl5/vendor_perl/5.8.8 -Darchlib=/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi -Dsitearch=/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi -Dvendorarch=/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi -Darchname=x86_64-linux-thread-multi -Dvendorprefix=/usr -Dsiteprefix=/usr -Duseshrplib -Dusethreads -Duseithreads -Duselargefiles -Dd_dosuid -Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio -Dinstallusrbinperl=n -Ubincompat5005 -Uversiononly -Dpager=/usr/bin/less -isr -Dd_gethostent_r_proto -Ud_endhostent_r_proto -Ud_sethostent_r_proto -Ud_endprotoent_r_proto -Ud_setprotoent_r_proto -Ud_endservent_r_proto -Ud_setservent_r_proto -Dinc_version_list=5.8.7 5.8.6 5.8.5 -Dscriptdir=/usr/bin' 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='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm', optimize='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic', cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -I/usr/include/gdbm' ccversion='', gccversion='4.1.2 20080704 (Red Hat 4.1.2-48)', 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='gcc', ldflags ='' libpth=/usr/local/lib64 /lib64 /usr/lib64 libs=-lresolv -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc perllibs=-lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc libc=, 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/lib64/perl5/5.8.8/x86_64-linux-thread-multi/CORE' cccdlflags='-fPIC', lddlflags='-shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API Built under linux Compiled at Sep 3 2010 08:59:03 @INC: /usr/lib64/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/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .

Message body is not shown because it is too large.

On Fri Oct 21 13:19:20 2011, james.freire@gmail.com wrote: Show quoted text
> TAF was not in version 10 - this was conditionally compiling depending > on > Oracle version I guess. > > DBD::Oracle 1.32 compile on Redhat (Linux 2.6.18-238.1.1.el5 #1 SMP > Tue Jan > 4 13:32:19 EST\ 2011 x86_64 x86_64 x86_64 GNU/Linux). Oracle version > 10.1.0.5 (10.1). Same errors occur on 1.28, 1.29 & 1.3
This is probably the same issue as 71343. Martin -- Martin J. Evans Wetherby, UK
On Fri Oct 07 15:31:50 2011, PYTHIAN wrote: Show quoted text
> Patch applied on the Github repo. > > I'm wondering, though, is the patch complete (as it only touches
oci8.c) ? Show quoted text
> > > Joy, > `/anick
Probably the same issue as 71845. Martin -- Martin J. Evans Wetherby, UK
I got someone to try the patch and... it didn't work. Which is no huge surprise. I expect that the uses of 'OCI_ATTR_TAF_ENABLED' in Oracle.xs have to be optionalized as well.
On Wed Nov 30 12:10:20 2011, PYTHIAN wrote: Show quoted text
> I got someone to try the patch and... it didn't work. Which is no huge > surprise. I expect that the uses of 'OCI_ATTR_TAF_ENABLED' in Oracle.xs > have to be optionalized as well.
Seems like OCI_ATTR_TAF_ENABLED is now conditionally compiled out if not defined. I'be made the OCI_ATTR_RESERVED_15 and 16 conditional too. Martin -- Martin J. Evans Wetherby, UK