General
cancel
Showing results for 
Search instead for 
Did you mean: 

those Gorgons HP-UX, Oracle, DBD::Oracle once again

SOLVED
Go to solution
Ralph Grothe
Honored Contributor

those Gorgons HP-UX, Oracle, DBD::Oracle once again

Hi,

this seems to be a never ending story.
Please, forgive me for reanimating those beasts.

Our DBAs changed yet another time the Oracle version, and my Perl DBI scripts don't work.
I always trip over PIC and dynamically linked shared Oracle libs.
I know it worked.
I have it working for same Oracle release (8.1.7 64Bit) on another suite of HP-UX 11.11 boxes.
But I can't get it working on these HP-UX 11.00 boxes.

I built Perl from scratch with
-lcl -lptreads
as libflags and +Z as ccflag (to satisfy 64Bit PIC).
I'm using HP-UX's ansic and langtools.
When building DBD::Oracle I set up the environment correctly (i.e. ORACLE_SID, ORACLE_HOME, ORACLE_USERID)
make seems to run ok, but make test crashes.
Please, have a look at attachment which contains make test log and output from perl -V

Regards
Ralph
Madness, thy name is system administration
3 REPLIES
H.Merijn Brand (procura
Honored Contributor
Solution

Re: those Gorgons HP-UX, Oracle, DBD::Oracle once again

Dirty solution, or a clean one?

If you can write to /, set up a (sym)link tree, so that darn Oracle can find the shared libs on the place it looks for:

> PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/base......./usr/lib/dld.sl: Can't open shared library: /project/hpux/817/src_000811_cunnitha/lib//libwtc8.sl
/usr/lib/dld.sl: No such file or directory

# cd /
# mkdir project
# cd project
# ln -s . hpux
# ln -s . 817
# ln -s . src_000811_cunnitha
# ln -s /location/of/your/real/oracle/home/lib lib

Hey, now it works :)

Otherwise, look into setting $SH_LIB_PATH, /etc/SHLIB_PATH, and see if chatr can be of any assistence (be careful)

HTH [ FWIW, the symlink solution worked for me :) ]
Enjoy, Have FUN! H.Merijn
Ralph Grothe
Honored Contributor

Re: those Gorgons HP-UX, Oracle, DBD::Oracle once again

Hey,

THREE CHEERS TO THE PERL HP-UX GURU MERIJN!!!

your dirty symlink hack worked for me too.
(sorry, haven't had time to try it yesterday)

I wonder, where did it get the /project/* path stuff from?
Is it part of the test routines?

But maybe you are still willing to help me with the pro solution?

I think for that I would have to rebuild my Perl.
Looks like it expected the '+z' as ccflag.
I only supplied it the '+Z' during configure since I read somewhere that this is for 64Bit PIC.

Here's the spot from the log of "perl Makefile.PL" (if you don't mind, please see attachment for details):


Warning: perl was not built with +z in ccflags
You may need to rebuild perl from sources
See instructions in README.hpux


Btw, make produced lots of warnings.

A happy
Ralph
Madness, thy name is system administration
H.Merijn Brand (procura
Honored Contributor

Re: those Gorgons HP-UX, Oracle, DBD::Oracle once again

Ignore the warnings, they are related to the perlio subsystem, not (yet) being fully supported by DBD-Oracle.

attached my 64bit config for perl-5.9.0 on HP-UX 11.00 using C-ANSI-C

a5:/pro/3gl/CPAN/perl-current 102 > ./perl -Ilib -V
Summary of my perl5 (revision 5.0 version 9 subversion 0 patch 18203) configuration:
Platform:
osname=hpux, osvers=11.00, archname=PA-RISC2.0-LP64
uname='hp-ux a5 b.11.00 u 9000800 512770508 unlimited-user license '
config_args='-Dusedevel -Duse64bitall -des'
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef useithreads=undef usemultiplicity=undef
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=define use64bitall=define uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags =' -Ae -DDEBUGGING -D_HPUX_SOURCE -Wl,+vnocompatwarnings +DD64 -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 ',
optimize='+O2 +Onolimit',
cppflags='-Aa -D__STDC_EXT__ -DDEBUGGING -D_HPUX_SOURCE -Ae -DDEBUGGING -D_HPUX_SOURCE -Wl,+vnocompatwarnings +DD64 -I/pro/local/include'
ccversion='', gccversion='', gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=87654321
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='/usr/bin/ld', ldflags ='-L/pro/local/lib +DD64 -L/lib/pa20_64'
libpth=/pro/local/lib /lib/pa20_64 /lib /usr/lib /usr/ccs/lib /usr/local/lib
libs=-lnsl -lnm -lgdbm -ldb -ldl -ldld -lm -lc -lsec -lrt
perllibs=-lnsl -lnm -ldl -ldld -lm -lc -lsec -lrt
libc=/lib/pa20_64/libc.sl, so=sl, useshrplib=false, libperl=libperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_hpux.xs, dlext=sl, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-B,deferred '
cccdlflags='+Z', lddlflags='-b +vnocompatwarnings -L/pro/local/lib -L/lib/pa20_64'


Characteristics of this binary (from libperl):
Compile-time options: DEBUGGING USE_64_BIT_INT USE_64_BIT_ALL USE_LARGE_FILES
Locally applied patches:
DEVEL17881
Built under hpux
Compiled at Nov 29 2002 11:03:39
@INC:
lib
/pro/lib/perl5/5.9.0/PA-RISC2.0-LP64
/pro/lib/perl5/5.9.0
/pro/lib/perl5/site_perl/5.9.0/PA-RISC2.0-LP64
/pro/lib/perl5/site_perl/5.9.0
/pro/lib/perl5/site_perl
.
a5:/pro/3gl/CPAN/perl-current 103 >

The /project/ stuff is contained in Oracles shared libraries. You can check that in the complaining .sl using chatr
Enjoy, Have FUN! H.Merijn