Re: DBD::Oracle 1.72 fail

"Martin J. Evans" <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.dbi.sybase.devel
Organization at home
Message-ID <[email protected]>
On 15/04/2014 12:38, H.Merijn Brand wrote:
> Builds fail on Linux with OIC-12.1
>
> As a side note, is anyone able to fetch Oracle Instant Client-12 for
> HP-UX Itanium 64 bit? Even on WinBlow$ that doesn't work :(
> http://www.oracle.com/technetwork/topics/hpitanium64soft-091490.html
>
>
> ######### Box 1
>
> Linux 3.11.10-7-desktop [openSUSE 13.1 (Bottle)]  x86_64 Xeon(R) CPU E5-1650 0 @ 3.20GHz/3072(12) x86_64  16008 Mb
>
> Using DBI 1.631 (for perl 5.016002 on x86_64-linux-ld) installed in /pro/lib/perl5/site_perl/5.16.2/x86_64-linux-ld/auto/DBI/
>
> Configuring DBD::Oracle for perl 5.016002 on linux (x86_64-linux-ld)
>
> Installing on a linux, Ver#3.4
> Using Oracle in /usr/lib/oracle/12.1/client64
> DEFINE _SQLPLUS_RELEASE = "1201000100" (CHAR)
> Oracle version 12.1.0.1 (12.1)
> Found /usr/share/oracle/12.1/client64/demo.mk
> Using /usr/share/oracle/12.1/client64/demo.mk
>
>
> ccache cc -c  -I/usr/include/oracle/12.1/client64  -I/pro/lib/perl5/site_perl/5.16.2/x86_64-linux-ld/auto/DBI -fPIC -fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2   -DVERSION=\"1.72\" -DXS_VERSION=\"1.72\" -fPIC "-I/pro/lib/perl5/5.16.2/x86_64-linux-ld/CORE"  -Wall -Wno-comment -DUTF8_SUPPORT -DORA_OCI_VERSION=\"12.1.0.1\" -DORA_OCI_102 -DORA_OCI_112 Oracle.c
> ccache cc -c  -I/usr/include/oracle/12.1/client64  -I/pro/lib/perl5/site_perl/5.16.2/x86_64-linux-ld/auto/DBI -fPIC -fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2   -DVERSION=\"1.72\" -DXS_VERSION=\"1.72\" -fPIC "-I/pro/lib/perl5/5.16.2/x86_64-linux-ld/CORE"  -Wall -Wno-comment -DUTF8_SUPPORT -DORA_OCI_VERSION=\"12.1.0.1\" -DORA_OCI_102 -DORA_OCI_112 dbdimp.c
> dbdimp.c: In function âora_db_login6â:
> dbdimp.c:723:5: warning: format â%dâ expects argument of type âintâ, but argument 12 has type âsize_tâ [-Wformat=]
>       OCISessionPoolCreate_log_stat(
>       ^
> dbdimp.c:723:5: warning: format â%dâ expects argument of type âintâ, but argument 14 has type âsize_tâ [-Wformat=]
> dbdimp.c: In function âora_st_FETCH_attribâ:
> dbdimp.c:4355:31: error: âimp_dbhâ undeclared (first use in this function)
>               if (CSFORM_IMPLIES_UTF8(SQLCS_IMPLICIT)) {
>                                 ^
> dbdimp.c:4355:31: note: each undeclared identifier is reported only once for each function it appears in
> dbdimp.c: At top level:
> dbdimp.c:32:93: warning: âdbi_get_stateâ defined but not used [-Wunused-function]
>   DBISTATE_DECLARE;
>
> ######### Box 2
>
> Linux 3.11.10-7-desktop [openSUSE 13.1 (Bottle)]  i386 Core(TM) i7-2620M CPU @ 2.70GHz/2619(4) i686  8032 Mb
>
> Using DBI 1.631 (for perl 5.018002 on i686-linux-64int-ld) installed in /pro/lib/perl5/site_perl/5.18.2/i686-linux-64int-ld/auto/DBI/
>
> Configuring DBD::Oracle for perl 5.018002 on linux (i686-linux-64int-ld)
>
> Using Oracle in /usr/lib/oracle/12.1/client
> DEFINE _SQLPLUS_RELEASE = "1201000100" (CHAR)
> Oracle version 12.1.0.1 (12.1)
> Found /usr/share/oracle/12.1/client/demo.mk
> Using /usr/share/oracle/12.1/client/demo.mk
>
> cc -c  -I/usr/include/oracle/12.1/client  -I/pro/lib/perl5/site_perl/5.18.2/i686-linux-64int-ld/auto/DBI -fno-strict-aliasing -pipe -fstack-protector -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2   -DVERSION=\"1.72\" -DXS_VERSION=\"1.72\" -fPIC "-I/pro/lib/perl5/5.18.2/i686-linux-64int-ld/CORE"  -Wall -Wno-comment -DUTF8_SUPPORT -DORA_OCI_VERSION=\"12.1.0.1\" -DORA_OCI_102 -DORA_OCI_112 dbdimp.c
> dbdimp.c: In function âdbd_rebind_ph_charâ:
> dbdimp.c:2558:35: warning: format â%ldâ expects argument of type âlong intâ, but argument 3 has type âIVâ [-Wformat=]
>                                     "Growing 96 phs sv to %ld resulted in buffer %ld\n", phs->maxlen - 1, SvLEN(phs->sv)
>                                     ^
> dbdimp.c:2558:35: warning: format â%ldâ expects argument of type âlong intâ, but argument 4 has type âSTRLENâ [-Wformat=]
> dbdimp.c:2572:35: warning: format â%ldâ expects argument of type âlong intâ, but argument 3 has type âIVâ [-Wformat=]
>                                     "Growing phs sv to %ld resulted in buffer %ld\n", phs->maxlen +1, SvLEN(phs->sv));
>                                     ^
> dbdimp.c:2572:35: warning: format â%ldâ expects argument of type âlong intâ, but argument 4 has type âSTRLENâ [-Wformat=]
> dbdimp.c:2605:27: warning: format â%ldâ expects argument of type âlong intâ, but argument 3 has type âSTRLENâ [-Wformat=]
>                             "Changing maxlen to %ld\n", SvLEN(phs->sv));
>                             ^
> dbdimp.c: In function âdbd_rebind_ph_xmlâ:
> dbdimp.c:2889:17: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
>     phs->progv  = (void*) SvIV(ptr);
>                   ^
> In file included from Oracle.h:52:0,
>                   from dbdimp.c:21:
> dbdimp.c: In function âora_st_FETCH_attribâ:
> dbdimp.h:311:27: error: âimp_dbhâ undeclared (first use in this function)
>    ((csform==SQLCS_NCHAR) ? imp_dbh->ncharsetid : imp_dbh->charsetid)
>                             ^
> dbdimp.h:302:7: note: in definition of macro âCS_IS_UTF8â
>    (  ( cs == utf8_csid ) || ( cs == al32utf8_csid ) )
>         ^
> dbdimp.h:314:14: note: in expansion of macro âCSFORM_IMPLIED_CSIDâ
>    CS_IS_UTF8( CSFORM_IMPLIED_CSID( csform ) )
>                ^
> dbdimp.c:4355:17: note: in expansion of macro âCSFORM_IMPLIES_UTF8â
>               if (CSFORM_IMPLIES_UTF8(SQLCS_IMPLICIT)) {
>                   ^
> dbdimp.h:311:27: note: each undeclared identifier is reported only once for each function it appears in
>    ((csform==SQLCS_NCHAR) ? imp_dbh->ncharsetid : imp_dbh->charsetid)
>                             ^
> dbdimp.h:302:7: note: in definition of macro âCS_IS_UTF8â
>    (  ( cs == utf8_csid ) || ( cs == al32utf8_csid ) )
>         ^
> dbdimp.h:314:14: note: in expansion of macro âCSFORM_IMPLIED_CSIDâ
>    CS_IS_UTF8( CSFORM_IMPLIED_CSID( csform ) )
>                ^
> dbdimp.c:4355:17: note: in expansion of macro âCSFORM_IMPLIES_UTF8â
>               if (CSFORM_IMPLIES_UTF8(SQLCS_IMPLICIT)) {
>                   ^
> In file included from Oracle.h:50:0,
>                   from dbdimp.c:21:
> dbdimp.c: At top level:
> /pro/lib/perl5/site_perl/5.18.2/i686-linux-64int-ld/auto/DBI/DBIXS.h:491:25: warning: âdbi_get_stateâ defined but not used [-Wunused-function]
>       static dbistate_t** dbi_get_state(pTHX) {                               \
>                           ^
> /pro/lib/perl5/site_perl/5.18.2/i686-linux-64int-ld/auto/DBI/DBIXS.h:514:5: note: in expansion of macro â_DBISTATE_DECLARE_COMMONâ
>       _DBISTATE_DECLARE_COMMON
>       ^
> dbdimp.c:32:1: note: in expansion of macro âDBISTATE_DECLAREâ
>   DBISTATE_DECLARE;
>   ^
> make: *** [dbdimp.o] Error 1

Looks like imp_dbh is not declared. Try this:

diff --git a/dbdimp.c b/dbdimp.c
index 3f8ab82..0f6e3c3 100644
--- a/dbdimp.c
+++ b/dbdimp.c
@@ -4319,6 +4319,7 @@ SV *
  dbd_st_FETCH_attrib(SV *sth, imp_sth_t *imp_sth, SV *keysv)
  {
         dTHX;
+        D_imp_dbh_from_sth;
         STRLEN kl;
         char *key = SvPV(keysv,kl);
         int i;

Martin
-- 
Martin J. Evans
Wetherby, UK
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.