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/