Re: DBD::Oracle 1.72 fail

"H.Merijn Brand" <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.dbi.sybase.devel
Message-ID <[email protected]>
On Tue, 15 Apr 2014 13:38:38 +0200, "H.Merijn Brand"
<[email protected]> wrote:

> Builds fail on Linux with OIC-12.1

tl;dr; if you are not interested in porting DBD::Oracle

I have now installed/gathered the available stuff for HP-UX Itanium
64bit, moved all into the required locations and tried to build
DBD::Oracle

Using rpm's on Linux is straightforward, and all works immediately
after that. On HP-UX, one has to move the files a bit after extracting
the following zips:

 instantclient-basic-hpux.ia64-12.1.0.1.0.zip
 instantclient-jdbc-hpux.ia64-12.1.0.1.0.zip
 instantclient-odbc-hpux.ia64-12.1.0.1.0.zip
 instantclient-sdk-hpux.ia64-12.1.0.1.0.zip
 instantclient-sqlplus-hpux.ia64-12.1.0.1.0.zip
 instantclient-tools-hpux.ia64-12.1.0.1.0.zip
 instantclient-precomp-hpux.ia64-12.1.0.1.0.zip

I added tnsping from the 10.2 database product (and the two required
messgae files). The Instant Client seems to work:

DBD-Oracle-1.72-2g6rU8 511 > tnsping $TWO_TASK

TNS Ping Utility for HPUX: Version 10.2.0.1.0 - Production on 16-APR-2014 10:38:17

Copyright (c) 1997, 2005, Oracle.  All rights reserved.

Used parameter files:
/pro/oracle/ic121/network/admin/sqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact ( DESCRIPTION = ( ADDRESS_LIST = ( ADDRESS = ( HOST = dbo)( PORT = 1521)( PROTOCOL = TCP))) ( CONNECT_DATA = ( SERVICE_NAME = xxx0123)))
OK (210 msec)

DBD-Oracle-1.72-2g6rU8 512 > sqlplus $ORACLE_USERID

SQL*Plus: Release 12.1.0.1.0 Production on Wed Apr 16 10:40:49 2014

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

So far so good. I had to read Makefile.PL to check what it expects
where, as all those zips install in different locations. The final
SUCCESS for that stage results in

DBD-Oracle-1.72-2g6rU8 520 > perl Makefile.PL
Using DBI 1.631 (for perl 5.014002 on IA64.ARCHREV_0-LP64-ld) installed in /pro/lib/perl5/site_perl/5.14.2/IA64.ARCHREV_0-LP64-ld/auto/DBI/

Configuring DBD::Oracle for perl 5.014002 on hpux (IA64.ARCHREV_0-LP64-ld)

Remember to actually *READ* the README file! Especially if you have any problems.

Installing on a hpux, Ver#11.31
Using Oracle in /pro/oracle/ic121
DEFINE _SQLPLUS_RELEASE = "1201000100" (CHAR)
Oracle version 12.1.0.1 (12.1)
Looks like an Instant Client installation, okay
Your LD_LIBRARY_PATH/SHLIB_PATH env var is set to '/pro/oracle/ic121/lib:/pro/local/lib:/usr/local/ssl/lib:/pro/pgsql/lib:/usr/local/lib:/usr/lib/hpux64:/usr/lib:/pro/pgsql/lib:/etc/opt/resmon/lib:/opt/gnome/lib:/usr/local/ia64/lib/hpux64'
WARNING: Your LD_LIBRARY_PATH/SHLIB_PATH env var doesn't include '/pro/oracle/ic121' but probably needs to.
Oracle sysliblist:
Found header files in /pro/oracle/ic121/sdk/include.

client_version=12.1


DEFINE= -DUTF8_SUPPORT -DORA_OCI_VERSION=\"12.1.0.1\" -DORA_OCI_102 -DORA_OCI_112

WARNING: If you have trouble, see README.hpux.txt...
    you may have to build your own perl, or go hunting for libraries
WARNING: If you have trouble, try perl Makefile.PL -l

Checking for functioning wait.ph


System: perl5.014002 hp-ux x2 b.11.31 u ia64 2977233888 unlimited-user license
Compiler:   cc +O2 +Onolimit  -Ae -DPERL_DONT_CREATE_GVSV +Z -z -D_HPUX_SOURCE -Wl,+vnocompatwarnings +DD64 -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
Linker:     /usr/bin/ld
Sysliblist:
Linking with -lclntsh.


WARNING: If you have problems you may need to rebuild perl with threading enabled.
LD_RUN_PATH=/pro/oracle/ic121
Using DBD::Oracle 1.72.
Using DBD::Oracle 1.72.
Using DBI 1.631 (for perl 5.014002 on IA64.ARCHREV_0-LP64-ld) installed in /pro/lib/perl5/site_perl/5.14.2/IA64.ARCHREV_0-LP64-ld/auto/DBI/
Generating a Unix-style Makefile
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?)


Next, building …

cc -c  -I/pro/oracle/ic121/sdk/include -I/pro/lib/perl5/site_perl/5.14.2/IA64.ARCHREV_0-LP64-ld/auto/DBI -Ae -DPERL_DONT_CREATE_GVSV +Z -z -D_HPUX_SOURCE -Wl,+vnocompatwarnings +DD64 -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 +O2 +Onolimit   -DVERSION=\"1.72\" -DXS_VERSION=\"1.72\" +Z "-I/pro/lib/perl5/5.14.2/IA64.ARCHREV_0-LP64-ld/CORE"  -DUTF8_SUPPORT -DORA_OCI_VERSION=\"12.1.0.1\" -DORA_OCI_102 -DORA_OCI_112 dbdimp.c
"/pro/lib/perl5/5.14.2/IA64.ARCHREV_0-LP64-ld/CORE/regexp.h", line 329: warning #2111-D:
          statement is unreachable
      return "?";           /* Unknown */
      ^

"dbdimp.c", line 736: warning #2181-D: argument is incompatible with
          corresponding format string conversion
                      strlen(uid),
                      ^

"dbdimp.c", line 738: warning #2181-D: argument is incompatible with
          corresponding format string conversion
                      strlen(pwd),
                      ^

"dbdimp.c", line 1528: warning #4232-D: conversion from "XPVHV *" to a more
          strictly aligned type "XPVMG *" may cause misaligned access
                DBIc_NUM_PARAMS(imp_sth) = (int)HvKEYS(imp_sth->all_params_hv);
                                                ^

"dbdimp.c", line 4355: error #2020: identifier "imp_dbh" is undefined
              if (CSFORM_IMPLIES_UTF8(SQLCS_IMPLICIT)) {
                  ^

"dbdimp.c", line 32: warning #2177-D: function "dbi_get_state" was declared
          but never referenced
  DBISTATE_DECLARE;
  ^

1 error detected in the compilation of "dbdimp.c".

Going back to 1.70

DBD-Oracle-1.70 527 > perl Makefile.PL
Using DBI 1.631 (for perl 5.014002 on IA64.ARCHREV_0-LP64-ld) installed in /pro/lib/perl5/site_perl/5.14.2/IA64.ARCHREV_0-LP64-ld/auto/DBI/

Configuring DBD::Oracle for perl 5.014002 on hpux (IA64.ARCHREV_0-LP64-ld)

Remember to actually *READ* the README file! Especially if you have any problems.

Installing on a hpux, Ver#11.31
Using Oracle in /pro/oracle/ic121
DEFINE _SQLPLUS_RELEASE = "1201000100" (CHAR)
Oracle version 12.1.0.1 (12.1)
Looks like an Instant Client installation, okay
Your LD_LIBRARY_PATH/SHLIB_PATH env var is set to '/pro/oracle/ic121/lib:/pro/local/lib:/usr/local/ssl/lib:/pro/pgsql/lib:/usr/local/lib:/usr/lib/hpux64:/usr/lib:/pro/pgsql/lib:/etc/opt/resmon/lib:/opt/gnome/lib:/usr/local/ia64/lib/hpux64'
WARNING: Your LD_LIBRARY_PATH/SHLIB_PATH env var doesn't include '/pro/oracle/ic121' but probably needs to.
Oracle sysliblist:
Found header files in /pro/oracle/ic121/sdk/include.

client_version=12.1


DEFINE= -DUTF8_SUPPORT -DORA_OCI_VERSION=\"12.1.0.1\" -DORA_OCI_102 -DORA_OCI_112

WARNING: If you have trouble, see README.hpux.txt...
    you may have to build your own perl, or go hunting for libraries
WARNING: If you have trouble, try perl Makefile.PL -l

Checking for functioning wait.ph


System: perl5.014002 hp-ux x2 b.11.31 u ia64 2977233888 unlimited-user license
Compiler:   cc +O2 +Onolimit  -Ae -DPERL_DONT_CREATE_GVSV +Z -z -D_HPUX_SOURCE -Wl,+vnocompatwarnings +DD64 -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
Linker:     /usr/bin/ld
Sysliblist:
Linking with -lclntsh.


WARNING: If you have problems you may need to rebuild perl with threading enabled.
Checking if your kit is complete...
Looks good
LD_RUN_PATH=/pro/oracle/ic121
Using DBD::Oracle 1.70.
Using DBD::Oracle 1.70.
Using DBI 1.631 (for perl 5.014002 on IA64.ARCHREV_0-LP64-ld) installed in /pro/lib/perl5/site_perl/5.14.2/IA64.ARCHREV_0-LP64-ld/auto/DBI/
Generating a Unix-style Makefile
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?)

DBD-Oracle-1.70 531 > make test
PERL_DL_NONLAZY=1 /pro/bin/perl "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/000-report-versions-tiny.t .. #
t/000-report-versions-tiny.t .. 1/? #
# Generated by Dist::Zilla::Plugin::ReportVersions::Tiny v1.08
# perl: 5.014002 (wanted 5.006) on hpux from /pro/bin/perl
#
# B                                             => 1.29       (want any version)
# Carp                                          => 1.3301     (want any version)
# DBI                                           => 1.631      (want 1.51)
# Data::Dumper                                  => 2.151      (want any version)
# Devel::Peek                                   => 1.07       (want any version)
# DynaLoader                                    => 1.13       (want any version)
# Encode                                        => 2.59       (want any version)
# Exporter                                      => 5.70       (want any version)
# ExtUtils::MakeMaker                           => 6.96       (want 6.30)
# Math::BigInt                                  => 1.9993     (want any version)
# Test::More                                    => 1.001003   (want 0.88)
# Thread::Semaphore                             => 2.12       (want any version)
# lib                                           => 0.63       (want any version)
# strict                                        => 1.04       (want any version)
# utf8                                          => 1.09       (want any version)
# vars                                          => 1.02       (want any version)
# version                                       => 0.9908     (want 0.9901)
# warnings                                      => 1.12       (want any version)
#
# Thanks for using my code.  I hope it works for you.
# If not, please try and include this output in the bug report.
# That will help me reproduce the issue and solve your problem.
#
t/000-report-versions-tiny.t .. ok
t/00versions.t ................ # OCI client library version: 12.1.0.1
t/00versions.t ................ 2/2 # database version: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
t/00versions.t ................ ok
t/01base.t .................... ok
t/10general.t ................. ok
t/12impdata.t ................. ok
t/14threads.t ................. skipped: this hpux perl 5.014002 not configured to support iThreads
t/15nls.t ..................... ok
t/20select.t .................. ok
t/21nchar.t ................... ok
t/22nchar_al32utf8.t .......... ok
t/22nchar_utf8.t .............. ok
t/23wide_db.t ................. skipped: Database character set is not Unicode
t/23wide_db_8bit.t ............ skipped: Database character set is not Unicode
t/23wide_db_al32utf8.t ........ skipped: Database character set is not Unicode
t/24implicit_utf8.t ........... skipped: database character set is not Unicode
t/25plsql.t ................... ok
t/26exe_array.t ............... ok
t/28array_bind.t .............. ok
t/30long.t .................... ok
t/31lob.t ..................... 2/12 DBI::db=HASH(0x60000000004fa9e8)->disconnect invalidates 1 active statement handle (either destroy statement handles or call finish on them before disconnecting) at t/31lob.t line 216.
t/31lob.t ..................... ok
t/31lob_extended.t ............ ok
t/32xmltype.t ................. ok
t/34pres_lobs.t ............... ok
t/36lob_leak.t ................ ok
t/38taf.t ..................... ok
t/39attr.t .................... 1/? # Oracle version: 11.2.0.3.0
# client version: 12.1.0.1
t/39attr.t .................... ok
t/40ph_type.t ................. ok
t/50cursor.t .................. ok
t/51scroll.t .................. ok
t/55nested.t .................. ok
t/56embbeded.t ................ ok
t/58object.t .................. ok
t/60reauth.t .................. skipped: ORACLE_USERID_2 not defined.
t/70meta.t .................... ok
t/80ora_charset.t ............. skipped: Database is set up as US7ASCII
t/rt13865.t ................... ok
t/rt74753-utf8-encoded.t ...... skipped: database character set is not Unicode
t/rt85886.t ................... ok
All tests successful.
Files=38, Tests=2614, 55 wallclock secs ( 0.81 usr  0.16 sys + 10.69 cusr  2.52 csys = 14.18 CPU)
Result: PASS


Pretty content with that result so far.
I might take a new look into README.hpux summarizing these actions

-- 
H.Merijn Brand  http://tux.nl   Perl Monger  http://amsterdam.pm.org/
using perl5.00307 .. 5.19   porting perl5 on HP-UX, AIX, and openSUSE
http://mirrors.develooper.com/hpux/        http://www.test-smoke.org/
http://qa.perl.org   http://www.goldmark.org/jeff/stupid-disclaimers/
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.