On Thu, 12 Jan 2006 14:57:38 +0000, Tim Bunce <[EMAIL PROTECTED]> wrote:

> On Thu, Jan 12, 2006 at 11:02:46AM +0100, H.Merijn Brand wrote:
> > On Wed, 11 Jan 2006 23:57:58 +0000, Tim Bunce <[EMAIL PROTECTED]> wrote:
> > 
> > >     http://www.data-plan.com/public/DBD-Oracle-1.17-RC3.tar.gz
> > > 
> > > "We're getting there". This one fixes the two issues raised against RC2
> > > (thanks Andy and Steffen).
> > 
> > HP-UX 11.23, perl-5.8.7-dor/64, DBI 1.50, HP C-ANSI-C, Oracle-9.2.0.2
> > HP-UX 11.23/64 U  rx1620/64 Itanium 2/1600(2) ia64  2037 Mb
> > 
> > --8<---
> > Your LD_LIBRARY_PATH env var is set to ''
> > Your LD_LIBRARY_PATH env var doesn't include '/pro/oracle/v920/lib' but
> > probably needs to. -->8---
> 
> > # echo $SHLIB_PATH
> > /pro/oracle/v920/lib:/pro/asql/o83F/bin:/pro/asql/o83F/lib:/usr/lib:/etc/opt/resmon/lib:/opt/gnome/lib:/pro/local/lib:/pro/oracle/v920/lib
> 
> > on HP-UX that is set in SHLIB_PATH. I think they should be treated equal
> 
> They should, but Makefile.PL is using what perl's own config told it to.
> What does
>       print -V:ldlibpthname

I assume you mean
# perl -V:ldlibpthname
ldlibpthname='LD_LIBRARY_PATH';

> say?

Looks like I have to alter hints/hpux.sh :)
But they *both* work. That might be the problem. You can set either, so
defining LD_LIBRARY_PATH in $Config{ldlibpthname} is not wrong.

> Seems like it ought to say SHLIB_PATH for HP-UX. Looking again at
> perl's own INSTALL file it says:
> 
> ---snip---
> To build a shared libperl, the environment variable controlling shared
> library search (LD_LIBRARY_PATH in most systems, DYLD_LIBRARY_PATH for
> NeXTSTEP/OPENSTEP/Darwin, LIBRARY_PATH for BeOS,

> LD_LIBRARY_PATH/SHLIB_PATH for HP-UX,

see, either! %Config has no way to define both

> LIBPATH for AIX, PATH for Cygwin)
> must be set up to include the Perl build directory because that's where the
> shared libperl will be created.  Configure arranges makefile to have the
> correct shared library search settings.  You can find the name of the
> environment variable Perl thinks works in your your system by
> 
>         grep ldlibpthname config.sh
> ---snip---
> 
> Note the "LD_LIBRARY_PATH/SHLIB_PATH" for HP-UX.
> Any idea why both are listed?

You can use them both and mixed.

Demo:
x1:/pro/bin 103 > chatr lsi
lsi:
         64-bit ELF executable
         shared library dynamic path search:
             LD_LIBRARY_PATH    enabled  first
             SHLIB_PATH         enabled  second
             embedded path      enabled  third  
/usr/lib/hpux64:/opt/langtools/lib/hpux64
         shared library list:
             libc.so.1
         shared library binding:
             deferred
         global hash table disabled
         global hash table size 1103
         shared library mapped private disabled
         shared library segment merging disabled
         shared vtable support disabled
         explicit unloading disabled
         linkage table protection disabled
         segments:
             index type     address      flags size
                 7 text 4000000000000000 z---c-    D (default)
                 8 data 6000000000000000 ---m--    D (default)
         executable from stack: D (default)
         kernel assisted branch prediction enabled
         lazy swap allocation for dynamic segments disabled
         nulptr references enabled
         address space model: default
         caliper dynamic instrumentation disabled
x1:/pro/bin 104 >

> Does this fix it for you?
> 
> ---snip---
> --- Makefile.PL (revision 2394)
> +++ Makefile.PL (working copy)
> @@ -1751,6 +1751,8 @@
>      $libdir ||= "$OH/".ora_libdir();
>      $libdir =~ s:[\\/]$::;
>      my $ldlibpthname = $Config{ldlibpthname} or return;
> +    $ldlibpthname = 'SHLIB_PATH' if $^O eq 'hpux'
> +       and not defined $ENV{$ldlibpthname};

No. I think it should be something like

$ldlibpthname = $^O eq "hpux"
    ? join ":" => grep { $_ } @ENV{qw( LD_LIBRARY_PATH SHLIB_PATH )}
    : $Config{ldlibpthname} or return;

>      my $val = $ENV{$ldlibpthname} || '';
>      print "Your $ldlibpthname env var is set to '$val'\n";
>      my @val = split /\Q$Config{path_sep}/o, $val, -1;
> 
> ---snip---
> 
> 
> 
> > Some compile warnings:
> > --8<---
> > "Oracle.xs", line 271: warning #2550-D: variable "csid" was set but never
> > used ub2 csid;
> > "dbdimp.c", line 1179: warning #2550-D: variable "sth_i" was set but
> > never used SV *sth_i;
> > "dbdimp.c", line 45: warning #2550-D: variable "ora_login_nomsg" was set
> > but never used static int ora_login_nomsg;   /* don't fetch real login
> > errmsg if true  */
> 
> Fixed. Thanks.

The compiler does some work very good indeed, but I still have to create a
testcase to prove HP that the optimizer is broken

> > "oci8.c", line 132: warning #2236-D: controlling expression is constant
> >         && OCIErrorGet_log_stat(errhp, recno, (text*)NULL, &eg_errcode,
> > errbuf,
> 
> I can't see the cause of that one.
> 
> > "oci8.c", line 562: warning #2177-D: function "fetch_func_nty" was
> > declared but never referenced fetch_func_nty(SV *sth, imp_fbh_t *fbh, SV
> > *dest_sv)
> 
> Incomplete support for Oracle named types. Patches welcome :)
> 
> > "oci8.c", line 1094: warning #2177-D: function "fbh_setup_getrefpv" was
> > declared but never referenced fbh_setup_getrefpv(imp_fbh_t *fbh, int
> > desc_t, char *bless)
> 
> I've added an #ifdef OCI_DTYPE_REF around the function.
> 
> > And now the good news:
> > All tests successful, 4 tests and 122 subtests skipped.
> 
> Yeah!
> 
> > Database 9.2.0.2.0 CHAR set is US7ASCII (Non-Unicode), NCHAR set is
> > AL16UTF16 (Unicode) Client 9.2.0.2 NLS_LANG is '<unset>', NLS_NCHAR is
> > '<unset>'
> 
> I'm tempting fate here, but do they all still pass if run as
> 
>       NLS_LANG=.UTF8 make test

bev x1:/pro/3gl/CPAN/DBD-Oracle-1.17 102 > env NLS_LANG=.UTF8 make test
PERL_DL_NONLAZY=1 /pro/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0,
'blib/lib', 'blib/arch')" t/*.t
t/01base................ok
t/10general.............ok
t/15nls.................ok
t/20select..............ok
t/21nchar............... Database and client versions and character sets:
Database 9.2.0.2.0 CHAR set is US7ASCII (Non-Unicode), NCHAR set is AL16UTF16 (U
nicode)
Client 9.2.0.2 NLS_LANG is '.UTF8', NLS_NCHAR is '<unset>'
t/21nchar...............ok
t/22nchar_al32utf8......ok
t/22nchar_utf8..........ok
t/23wide_db.............skipped
        all skipped: Database character set is not Unicode
t/23wide_db_8bit........skipped
        all skipped: Database character set is not Unicode
t/23wide_db_al32utf8....skipped
        all skipped: Database character set is not Unicode
t/24implicit_utf8.......ok
t/25plsql...............ok
t/30long................ok
        122/470 skipped: various reasons
t/31lob.................ok
t/40ph_type.............ok 1/19 Placeholder behaviour for ora_type=1 (the defaul
t) varies with Oracle version.
 Oracle 7 didn't strip trailing spaces, Oracle 8 did, until 9.2.x
 Your system doesn't. If that seems odd, let us know.
t/40ph_type.............ok
t/50cursor..............ok
t/55nested..............ok
t/60reauth..............ORACLE_USERID_2 not defined.  Tests skipped.
skipped
        all skipped: no reason given
t/70meta................ok
All tests successful, 4 tests and 122 subtests skipped.
Files=19, Tests=1878, 15 wallclock secs ( 6.92 cusr +  1.24 csys =  8.16 CPU)
PERL_DL_NONLAZY=1 /pro/bin/perl "-Iblib/lib" "-Iblib/arch" test.pl

Oraperl emulation interface version 1.44
DBD::Oracle 1.17 using OCI9.2.0.2 by Tim Bunce
DBI 1.50 by Tim Bunce

Data sources:
        dbi:Oracle:EXTPROC_CONNECTION_DATA
        dbi:Oracle:bevfin
        dbi:Oracle:bevtest
        dbi:Oracle:bistest
        dbi:Oracle:fintest
        dbi:Oracle:leptest
Connecting
 to '' (from command line, else uses ORACLE_SID or TWO_TASK - recommended)
 as 'PROBEV/PROBEV' (via ORACLE_USERID env var or default - recommend name/passw
[EMAIL PROTECTED])
(ORACLE_SID='bevtest', TWO_TASK='')
Fields:    6
Names:          NUM_T   DATE_T  CHAR_T  ROWID_T RAW_T   NULL_T
Lengths:        172     76      121     21      3       1
OraTypes:       2       12      1       104     23      1
SQLTypes:       8       93      12      -9104   -2      12
Scale:          0       0       0       0       0       0
Precision:      126     75      120     20      2       0
Nullable:       1       1       1       1       1       1
Est row width:  36
Data rows:
    fetch: "7.2", "12-JAN-06", "PROBEV", "AAAADeAABAAAAZaAAA", "7D", undef

Repetitive connect/open/close/disconnect:
1 2 3 4 5 6 7 8 9 10 (~0.078 seconds each)
test.pl complete.

bev x1:/pro/3gl/CPAN/DBD-Oracle-1.17 103 >


If time permits, I'll check on other combo's too (Oracle-8 on HP-UX 11.00 for
example)

-- 
H.Merijn Brand        Amsterdam Perl Mongers (http://amsterdam.pm.org/)
using Perl 5.6.2, 5.8.0, 5.8.5, & 5.9.2  on HP-UX 10.20, 11.00 & 11.11,
 AIX 4.3 & 5.2, SuSE 9.2 & 9.3, and Cygwin. http://www.cmve.net/~merijn
Smoking perl: http://www.test-smoke.org,    perl QA: http://qa.perl.org
 reports  to: [EMAIL PROTECTED],                [email protected]

Reply via email to