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