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: 32727
Status: rejected
Worked: 45 min
Priority: 0/
Queue: DBD-Oracle

People
Owner: champoux [...] pythian.com
Requestors: michael.virnstein [...] brodos.de
Cc:
AdminCc:

Bug Information
Severity: Critical
Broken in: 1.20
Fixed in: (no value)



Subject: DBD::1.20 won't install on cygwin
Installing 1.19 has worked on cygwin, but when i try to install DBD::Oracle 1.20, i get the following error: ----------------------------------------------------------------------- CPAN.pm: Going to build P/PY/PYTHIAN/DBD-Oracle-1.20.tar.gz Using DBI 1.601 (for perl 5.008008 on cygwin-thread-multi-64int) installed in /u sr/lib/perl5/site_perl/5.8/cygwin/auto/DBI/ Configuring DBD::Oracle for perl 5.008008 on cygwin (cygwin-thread-multi-64int) Remember to actually *READ* the README file! Especially if you have any problems . Using Oracle in C:/oracle/product/10.2.0/client DEFINE _SQLPLUS_RELEASE = "1002000100" (CHAR) Oracle version 10.2.0.1 (10.2) Found oci directory Using OCI directory 'oci' Checking for functioning wait.ph System: perl5.008008 cygwin_nt-5.1 reini 1.5.24(0.15642) 2007-01-31 10:57 i686 c ygwin Compiler: gcc -O3 -DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -pipe -Wdeclarat ion-after-statement Linker: /usr/bin/ld Sysliblist: Checking if your kit is complete... Looks good LD_RUN_PATH=C:/oracle/product/10.2.0/client/lib:C:/oracle/product/10.2.0/client/ rdbms/lib Using DBD::Oracle 1.20. Using DBD::Oracle 1.20. Using DBI 1.601 (for perl 5.008008 on cygwin-thread-multi-64int) installed in /u sr/lib/perl5/site_perl/5.8/cygwin/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?) 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.exe -p -e "s/~DRIVER~/Oracle/g" /usr/lib/perl5/site_perl/5.8/cygwi n/auto/DBI/Driver.xst > Oracle.xsi /usr/bin/perl.exe /usr/lib/perl5/5.8/ExtUtils/xsubpp -typemap /usr/lib/perl5/5. 8/ExtUtils/typemap -typemap typemap Oracle.xs > Oracle.xsc && mv Oracle.xsc Ora cle.c gcc -c -IC:/oracle/product/10.2.0/client/oci/include -IC:/oracle/product/10.2.0 /client/rdbms/demo -I/usr/lib/perl5/site_perl/5.8/cygwin/auto/DBI -DPERL_USE_SAF E_PUTENV -fno-strict-aliasing -pipe -Wdeclaration-after-statement -DUSEIMPORTLIB -O3 -DVERSION=\"1.20\" -DXS_VERSION=\"1.20\" "-I/usr/lib/perl5/5.8/cygwin/CO RE" -Wall -Wno-comment -DUTF8_SUPPORT -DNEW_OCI_INIT -DORA_OCI_VERSION=\"10.2.0 .1\" Oracle.c gcc -c -IC:/oracle/product/10.2.0/client/oci/include -IC:/oracle/product/10.2.0 /client/rdbms/demo -I/usr/lib/perl5/site_perl/5.8/cygwin/auto/DBI -DPERL_USE_SAF E_PUTENV -fno-strict-aliasing -pipe -Wdeclaration-after-statement -DUSEIMPORTLIB -O3 -DVERSION=\"1.20\" -DXS_VERSION=\"1.20\" "-I/usr/lib/perl5/5.8/cygwin/CO RE" -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:398: warning: cast to pointer from integer of different size dbdimp.c:412: warning: cast to pointer from integer of different size dbdimp.c:422: warning: cast to pointer from integer of different size dbdimp.c:426: warning: cast to pointer from integer of different size dbdimp.c: In function `dbd_rebind_ph_char': dbdimp.c:2091: warning: cast from pointer to integer of different size gcc -c -IC:/oracle/product/10.2.0/client/oci/include -IC:/oracle/product/10.2.0 /client/rdbms/demo -I/usr/lib/perl5/site_perl/5.8/cygwin/auto/DBI -DPERL_USE_SAF E_PUTENV -fno-strict-aliasing -pipe -Wdeclaration-after-statement -DUSEIMPORTLIB -O3 -DVERSION=\"1.20\" -DXS_VERSION=\"1.20\" "-I/usr/lib/perl5/5.8/cygwin/CO RE" -Wall -Wno-comment -DUTF8_SUPPORT -DNEW_OCI_INIT -DORA_OCI_VERSION=\"10.2.0 .1\" oci8.c oci8.c: In function `get_attr_val': oci8.c:1359: warning: long int format, int arg (arg 3) oci8.c:1359: warning: long int format, int arg (arg 3) oci8.c:1361: warning: long int format, int arg (arg 3) oci8.c:1361: warning: long int format, int arg (arg 3) oci8.c:1364: warning: long int format, int arg (arg 3) oci8.c:1364: warning: long int format, int arg (arg 3) Running Mkbootstrap for DBD::Oracle () chmod 644 Oracle.bs rm -f blib/arch/auto/DBD/Oracle/Oracle.dll LD_RUN_PATH="C:/oracle/product/10.2.0/client/lib:C:/oracle/product/10.2.0/client /rdbms/lib" ld2 -s -L/usr/local/lib Oracle.o dbdimp.o oci8.o -o blib/arch/auto /DBD/Oracle/Oracle.dll \ /usr/lib/perl5/5.8/cygwin/CORE/libperl.dll.a -L/home/Administrator/.cp an/build/DBD-Oracle-1.20-vWbORz -loci \ gcc -shared -o Oracle.dll -Wl,--out-implib=libOracle.dll.a -Wl,--export-all-sym bols -Wl,--enable-auto-import -Wl,--stack,8388608 -Wl,--enable-auto-image-base \ -s -L/usr/local/lib Oracle.o dbdimp.o oci8.o /usr/lib/perl5/5.8/cygwin/CORE/lib perl.dll.a -L/home/Administrator/.cpan/build/DBD-Oracle-1.20-vWbORz -loci dbdimp.o:dbdimp.c:(.text+0xc7d1): undefined reference to `_OCIStmtFetch2' oci8.o:oci8.c:(.text+0x59eb): undefined reference to `_OCIDateTimeToText' oci8.o:oci8.c:(.text+0x5b42): undefined reference to `_OCIIntervalToText' oci8.o:oci8.c:(.text+0x5f5b): undefined reference to `_OCIDateTimeGetTimeZoneOff set' oci8.o:oci8.c:(.text+0xf6b5): undefined reference to `_OCIStmtFetch2' Creating library file: libOracle.dll.a collect2: ld returned 1 exit status perlld: *** system() failed to execute gcc -shared -o Oracle.dll -Wl,--out-implib=libOracle.dll.a -Wl,--export-all-sym bols -Wl,--enable-auto-import -Wl,--stack,8388608 -Wl,--enable-auto-image-base \ -s -L/usr/local/lib Oracle.o dbdimp.o oci8.o /usr/lib/perl5/5.8/cygwin/CORE/lib perl.dll.a -L/home/Administrator/.cpan/build/DBD-Oracle-1.20-vWbORz -loci make: *** [blib/arch/auto/DBD/Oracle/Oracle.dll] Error 2 PYTHIAN/DBD-Oracle-1.20.tar.gz /usr/bin/make -- NOT OK Running make test Can't test without successful make Running make install Make had returned bad status, install seems impossible Failed during this command: PYTHIAN/DBD-Oracle-1.20.tar.gz : make NO
I will have a look into this this week hopefully today, 28th Jan, Might require you help on this because I do not have access to a cygwin box directly. Cheers John S
Looks like a simple casting problem try the follow patch Index: dbdimp.c =================================================================== --- dbdimp.c (revision 10654) +++ dbdimp.c (working copy) @@ -391,7 +391,7 @@ imp_dbh->envhp = NULL; /* force new environment */ } else { - IV tmp; + UV tmp; if (!sv_isa(*svp, "ExtProc::OCIEnvHandle")) croak("ora_envhp value is not of type ExtProc::OCIEnvHandle"); tmp = SvIV((SV*)SvRV(*svp)); @@ -401,7 +401,7 @@ /* "extproc" dbname is special if "ora_context" attribute also given */ if (strEQ(dbname,"extproc") && (svp=DBD_ATTRIB_GET_SVP(attr, "ora_context", 11))) { - IV tmp; + UV tmp; SV **svcsvp; SV **errsvp; if (!svp) @@ -2088,10 +2088,10 @@ phs->alen = value_len + phs->alen_incnull; if (DBIS->debug >= 3) { - UV neatsvpvlen = (UV)DBIc_DBISTATE(imp_sth)->neatsvpvlen; - PerlIO_printf(DBILOGFP, "dbd_rebind_ph_char() (2): bind %s <== '%.*s' (size %ld/%ld, otype %d, indp %d, at_exec %d)\n", + unsigned int neatsvpvlen = (unsigned int)DBIc_DBISTATE(imp_sth)->neatsvpvlen; + PerlIO_printf(DBILOGFP, "dbd_rebind_ph_char() (2): bind %s <== '%.*s' (size %ld/%ld, otype %d, indp %d, at_exec %d)\n", phs->name, - (int)(phs->alen > neatsvpvlen ? neatsvpvlen : phs->alen), + (unsigned int)(phs->alen > neatsvpvlen ? neatsvpvlen : phs->alen), (phs->progv) ? phs->progv : "", (long)phs->alen, (long)phs->maxlen, phs->ftype, phs->indp, at_exec); }
Download 32727.01.patch.txt
application/x-www-form-urlencoded 1.4k

Message body not shown because it is not plain text.

I also noticed that you are using "cygwin-thread-multi-64int" is this on a 64bit windows box if it is you may be using the 32bin oracle client which could cause your problems as well?
From: mailtomanish.sharma [...] gmail.com
My setup: ,---- | Windows XP SP2 | | /cygdrive/d/home/softwares/DBD-Oracle-1.20 $ uname -a | CYGWIN_NT-5.1 326001553L 1.5.25(0.156/4/2) 2008-02-27 19:14 i686 Cygwin | | /cygdrive/d/home/softwares/DBD-Oracle-1.20 $ perl -v | This is perl, v5.10.0 built for i686-cygwin-thread-multi-64int | | /cygdrive/d/home/softwares/DBD-Oracle-1.20 $ perl -V:cc | cc='gcc'; | | /cygdrive/d/home/softwares/DBD-Oracle-1.20 $ perl -e 'use DBI; print "DBI Version: ".$DBI::VERSION."\n"; | DBI Version: 1.602 `---- Following snippent shows that the patch you provided has been applied. ,---- | /cygdrive/d/home/softwares/DBD-Oracle-1.20 $ diff -u dbdimp.c.orig.prepatch dbdimp.c | --- dbdimp.c.orig.prepatch 2007-12-21 21:33:55.000000000 +0530 | +++ dbdimp.c 2008-03-01 01:58:49.043993600 +0530 | @@ -391,7 +391,7 @@ | imp_dbh->envhp = NULL; /* force new environment */ | } | else { | - IV tmp; | + UV tmp; | if (!sv_isa(*svp, "ExtProc::OCIEnvHandle")) | croak("ora_envhp value is not of type ExtProc::OCIEnvHandle"); | tmp = SvIV((SV*)SvRV(*svp)); | @@ -401,7 +401,7 @@ | | /* "extproc" dbname is special if "ora_context" attribute also given */ | if (strEQ(dbname,"extproc") && (svp=DBD_ATTRIB_GET_SVP(attr, "ora_context", 11))) { | - IV tmp; | + UV tmp; | SV **svcsvp; | SV **errsvp; | if (!svp) | @@ -2088,10 +2088,10 @@ | phs->alen = value_len + phs->alen_incnull; | | if (DBIS->debug >= 3) { | - UV neatsvpvlen = (UV)DBIc_DBISTATE(imp_sth)->neatsvpvlen; | - PerlIO_printf(DBILOGFP, "dbd_rebind_ph_char() (2): bind %s <== '%.*s' (size %ld/%ld, otype %d, indp %d, at_exec %d)\n", | + unsigned int neatsvpvlen = (unsigned int)DBIc_DBISTATE(imp_sth)->neatsvpvlen; | + PerlIO_printf(DBILOGFP, "dbd_rebind_ph_char() (2): bind %s <== '%.*s' (size %ld/%ld, otype %d, indp %d, at_exec %d)\n", | phs->name, | - (int)(phs->alen > neatsvpvlen ? neatsvpvlen : phs->alen), | + (unsigned int)(phs->alen > neatsvpvlen ? neatsvpvlen : phs->alen), | (phs->progv) ? phs->progv : "", | (long)phs->alen, (long)phs->maxlen, phs->ftype, phs->indp, at_exec); | } `---- Setting up for compile: ,---- | /cygdrive/d/home/softwares/DBD-Oracle-1.20 $ export ORACLE_HOME=/cygdrive/d/home/installations/instantclient102/ | /cygdrive/d/home/softwares/DBD-Oracle-1.20 $ export ORACLE_USERID="manish/manish@xe" `---- Creating makefile: ,---- | /cygdrive/d/home/softwares/DBD-Oracle-1.20 $ perl Makefile.PL | Using DBI 1.602 (for perl 5.010000 on i686-cygwin-thread-multi-64int) installed in /usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/DBI/ | | Configuring DBD::Oracle for perl 5.010000 on cygwin (i686-cygwin-thread-multi-64int) | | Remember to actually *READ* the README file! Especially if you have any problems. | | Using Oracle in /cygdrive/d/home/installations/instantclient102 | DEFINE _SQLPLUS_RELEASE = "1002000300" (CHAR) | Oracle version 10.2.0.3 (10.2) | Using OCI directory 'sdk' | | Checking for functioning wait.ph | | | System: perl5.010000 cygwin_nt-5.1 reini 1.5.25(0.15642) 2007-12-14 19:21 i686 cygwin | Compiler: gcc -O3 -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -fno-strict-aliasing -pipe -I/usr/local/include | Linker: /bin/ld | Sysliblist: | | | WARNING: If you have problems you may need to rebuild perl with -Uusemymalloc. | LD_RUN_PATH=/cygdrive/d/home/installations/instantclient102/lib:/cygdrive/d/home/installations/instantclient102/rdbms/lib | Using DBD::Oracle 1.20. | Using DBD::Oracle 1.20. | Using DBI 1.602 (for perl 5.010000 on i686-cygwin-thread-multi-64int) installed in /usr/lib/perl5/site_perl/5.10/i686-cygwin/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?) `---- Apprently successful. Now compiling: ,---- | /cygdrive/d/home/softwares/DBD-Oracle-1.20 $ make | Skip blib/lib/DBD/Oracle.pm (unchanged) | Skip blib/lib/DBD/mkta.pl (unchanged) | Skip blib/lib/oraperl.ph (unchanged) | Skip blib/arch/auto/DBD/Oracle/dbdimp.h (unchanged) | Skip blib/arch/auto/DBD/Oracle/ocitrace.h (unchanged) | Skip blib/lib/Oraperl.pm (unchanged) | Skip blib/arch/auto/DBD/Oracle/Oracle.h (unchanged) | Skip blib/arch/auto/DBD/Oracle/mk.pm (unchanged) | Skip blib/lib/DBD/Oracle/GetInfo.pm (unchanged) | gcc -c -I/cygdrive/d/home/installations/instantclient102/sdk/include -I/cygdrive/d/home/installations/instantclient102/rdbms/demo -I/usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/DBI -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -fno-strict-aliasing -pipe -I/usr/local/include -DUSEIMPORTLIB -O3 -DVERSION=\"1.20\" -DXS_VERSION=\"1.20\" "-I/usr/lib/perl5/5.10/i686-cygwin/CORE" -Wall -Wno-comment -DUTF8_SUPPORT -DNEW_OCI_INIT -DORA_OCI_VERSION=\"10.2.0.3\" Oracle.c | gcc -c -I/cygdrive/d/home/installations/instantclient102/sdk/include -I/cygdrive/d/home/installations/instantclient102/rdbms/demo -I/usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/DBI -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -fno-strict-aliasing -pipe -I/usr/local/include -DUSEIMPORTLIB -O3 -DVERSION=\"1.20\" -DXS_VERSION=\"1.20\" "-I/usr/lib/perl5/5.10/i686-cygwin/CORE" -Wall -Wno-comment -DUTF8_SUPPORT -DNEW_OCI_INIT -DORA_OCI_VERSION=\"10.2.0.3\" dbdimp.c | dbdimp.c: In function `ora_db_login6': | dbdimp.c:398: warning: cast to pointer from integer of different size | dbdimp.c:412: warning: cast to pointer from integer of different size | dbdimp.c:422: warning: cast to pointer from integer of different size | dbdimp.c:426: warning: cast to pointer from integer of different size | dbdimp.c: In function `dbd_rebind_ph_char': | dbdimp.c:2041: warning: long int format, different type arg (arg 5) | dbdimp.c: In function `ora_bind_ph': | dbdimp.c:2468: warning: int format, different type arg (arg 2) | dbdimp.c:2477: warning: int format, different type arg (arg 2) | dbdimp.c:2509: warning: int format, different type arg (arg 3) | dbdimp.c:2519: warning: unknown conversion type character `_' in format | gcc -c -I/cygdrive/d/home/installations/instantclient102/sdk/include -I/cygdrive/d/home/installations/instantclient102/rdbms/demo -I/usr/lib/perl5/site_perl/5.10/i686-cygwin/auto/DBI -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -fno-strict-aliasing -pipe -I/usr/local/include -DUSEIMPORTLIB -O3 -DVERSION=\"1.20\" -DXS_VERSION=\"1.20\" "-I/usr/lib/perl5/5.10/i686-cygwin/CORE" -Wall -Wno-comment -DUTF8_SUPPORT -DNEW_OCI_INIT -DORA_OCI_VERSION=\"10.2.0.3\" oci8.c | oci8.c: In function `dbd_rebind_ph_lob': | oci8.c:761: warning: long int format, ub4 arg (arg 2) | oci8.c: In function `ora_blob_read_mb_piece': | oci8.c:953: warning: long int format, different type arg (arg 6) | oci8.c: In function `get_attr_val': | oci8.c:1325: warning: unknown conversion type character `O' in format | oci8.c:1325: warning: char format, different type arg (arg 6) | oci8.c:1325: warning: too many arguments for format | oci8.c:1342: warning: unknown conversion type character `O' in format | oci8.c:1342: warning: char format, different type arg (arg 6) | oci8.c:1342: warning: too many arguments for format | oci8.c:1359: warning: long int format, int arg (arg 3) | oci8.c:1359: warning: long int format, int arg (arg 3) | oci8.c:1361: warning: long int format, int arg (arg 3) | oci8.c:1361: warning: long int format, int arg (arg 3) | oci8.c:1364: warning: long int format, int arg (arg 3) | oci8.c:1364: warning: long int format, int arg (arg 3) | oci8.c: In function `get_object': | oci8.c:1550: warning: int format, pointer arg (arg 6) | oci8.c: In function `ora_describe': | oci8.c:2160: warning: long int format, ub4 arg (arg 2) | oci8.c:2275: warning: int format, pointer arg (arg 6) | oci8.c: In function `init_lob_refetch': | oci8.c:2809: warning: long int format, ub4 arg (arg 2) | oci8.c:2852: warning: long int format, int arg (arg 2) | oci8.c:2870: warning: int format, long int arg (arg 3) | rm -f blib/arch/auto/DBD/Oracle/Oracle.dll | LD_RUN_PATH="/cygdrive/d/home/installations/instantclient102/lib:/cygdrive/d/home/installations/instantclient102/rdbms/lib" g++ --shared -Wl,--enable-auto-import -Wl,--export-all-symbols -Wl,--stack,8388608 -Wl,--enable-auto-image-base -L/usr/local/lib Oracle.o dbdimp.o oci8.o -o blib/arch/auto/DBD/Oracle/Oracle.dll \ | /usr/lib/perl5/5.10/i686-cygwin/CORE/libperl.dll.a -L/cygdrive/d/home/softwares/DBD-Oracle-1.20 -loci \ | | dbdimp.o:dbdimp.c:(.text+0xcb31): undefined reference to `_OCIStmtFetch2' | oci8.o:oci8.c:(.text+0x5a9c): undefined reference to `_OCIDateTimeToText' | oci8.o:oci8.c:(.text+0x5bf2): undefined reference to `_OCIIntervalToText' | oci8.o:oci8.c:(.text+0x6028): undefined reference to `_OCIDateTimeGetTimeZoneOffset' | oci8.o:oci8.c:(.text+0xf7f2): undefined reference to `_OCIStmtFetch2' | collect2: ld returned 1 exit status | make: *** [blib/arch/auto/DBD/Oracle/Oracle.dll] Error 1 `---- It fails with the same error as without the patch. I have tried to format clearly but it line width may cause it to look bad. Do let me know if you need me to repost/email. -- Manish
Closing as it's an old ticket. If it's still pertinent, please retry using the most recent release of DBD::Oracle (v1.50 at the time of this writing)