Operating System - HP-UX
1826420 Members
3070 Online
109692 Solutions
New Discussion

Re: DBD Perl Module Install

 
SOLVED
Go to solution
Youlette Etienne_2
Regular Advisor

DBD Perl Module Install

Hello everyone:

Getting following error on "make test":
PERL_DL_NONLAZY=1 /usr/local/bin/perl "-MExtUtils::Command::MM" "-e" "te
st_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/01base................/usr/lib/dld.sl: Can't shl_load() a library containing T
hread Local Storage: /usr/lib/libpthread.1
/usr/lib/dld.sl: Exec format error
Failed to load Oracle extension and/or shared libraries:
install_driver(Oracle) failed: Can't load '/software/perl_modules/DBD-Oracle-1.1
7/blib/arch/auto/DBD/Oracle/Oracle.sl' for module DBD::Oracle: Exec format error
at /opt/perl5/lib/5.8.8/PA-RISC2.0/DynaLoader.pm line 230.
at (eval 3) line 3
Compilation failed in require at (eval 3) line 3.
Perhaps a required shared library or dll isn't installed where expected
at t/01base.t line 19
The remaining tests will probably also fail with the same error.

Followed steps at link-got syntax error when removed "PERL_DL_NONLAZY=1"

http://forums1.itrc.hp.com/service/forums/questionanswer.do?threadId=850454
HPUX OS=11.11, PARISC 2.0
Oracle 9.2.0
Perl 5.8.8, downloaded from www.perl.com, not HP's version.
following variables set:
ORACLE_BASE=/app/oracle
ORACLE_SID=amisysp
ORACLE_OWNER=oracle
ORACLE_TERM=vt100
ORACLE_HOME=/app/oracle/product/9.2.0
SHLIB_PATH=/app/oracle/product/9.2.0/lib:/usr/li/app/oracle/product/9.2.0/lib32

>chatr Oracl.sl
shared library
shared library dynamic path search:
SHLIB_PATH disabled second
embedded path enabled first /app/oracle/product/9.2.0/lib32
shared library list:
dynamic /app/oracle/product/9.2.0/lib32/libclntsh.sl.9.0
dynamic /usr/lib/librt.2
dynamic /usr/lib/libpthread.1
shared vtable support disabled
explicit unloading enabled
static branch prediction disabled
executable from stack: D (default)
kernel assisted branch prediction enabled
lazy swap allocation disabled
text segment locking disabled
data segment locking disabled
third quadrant private data space disabled
fourth quadrant private data space disabled
third quadrant global data space disabled
data page size: D (default)
instruction page size: D (default)
nulptr references disabled

>ldd Oracle.sl
/usr/lib/libpthread.1 => /usr/lib/libpthread.1
/usr/lib/librt.2 => /usr/lib/librt.2
/app/oracle/product/9.2.0/lib32/libclntsh.sl.9.0 => /app/oracle/prod
uct/9.2.0/lib32/libclntsh.sl.9.0
/usr/lib/libcl.2 => /usr/lib/libcl.2
/usr/lib/libisamstub.1 => /usr/lib/libisamstub.1
/usr/lib/libdld.2 => /usr/lib/libdld.2
/usr/lib/libc.2 => /usr/lib/libc.2
/usr/lib/libdld.2 => /usr/lib/libdld.2
/usr/lib/libc.2 => /usr/lib/libc.2
/usr/lib/libm.2 => /usr/lib/libm.2
/usr/lib/libdld.2 => /usr/lib/libdld.2
/usr/lib/libnss_dns.1 => /usr/lib/libnss_dns.1
/usr/lib/libdld.2 => /usr/lib/libdld.2
/usr/lib/libpthread.1 => /usr/lib/libpthread.1
/usr/lib/librt.2 => /usr/lib/librt.2
/app/oracle/product/9.2.0/lib32/libwtc9.sl => /app/oracle/product/9.2.
0/lib32/libwtc9.sl
7: /software/perl_modules/DBD-Oracle-1.17/blib/arch/auto/DBD/Oracle =>

Heed help on this one.
If at first you don't succeed, change the rules!
12 REPLIES 12
H.Merijn Brand (procura
Honored Contributor
Solution

Re: DBD Perl Module Install

So, you compiled it yourself, but did not read the INSTALL, and README.hpux files.

--8<---
Oracle on HP-UX

Using perl to connect to Oracle databases through DBI and DBD::Oracle
has caused a lot of people many headaches. Read README.hpux in the
DBD::Oracle for much more information. The reason to mention it here is
that Oracle requires a perl built with libcl and libpthread, the latter
even when perl is build without threads. Building perl using all
defaults, but still enabling to build DBD::Oracle later on can be
achieved using

Configure -A prepend:libswanted='cl pthread ' ...

Do not forget the space before the trailing quote.

Also note that this does not (yet) work with all configurations, it is
known to fail with 64-bit versions of GCC.
-->8---

Enjoy, Have FUN! H.Merijn [ wondering who he writes it for ]
Enjoy, Have FUN! H.Merijn
Youlette Etienne_2
Regular Advisor

Re: DBD Perl Module Install

I recompiled Perl with the Configure parameters, now I am getting the below errors when I run "make"

/usr/bin/ld: Can't open /app/oracle/product/9.2.0/lib32:/usr/lib32:/usr/local/lib32:/app/oracle/product/9.2.0/lib32
/usr/bin/ld: No such file or directory
*** Error exit code 1

If at first you don't succeed, change the rules!
H.Merijn Brand (procura
Honored Contributor

Re: DBD Perl Module Install

- Can I see the output of 'perl -V' (that is a capital 'V')

- If you are using GNU gcc, did you consider one of my prebuilt binaries?

My HP ITRC site pages can be found at (please use LA as primary choice):

USA Los Angeles http://mirrors.develooper.com/hpux/
SGP Singapore https://www.beepz.com/personal/merijn/
USA Chicago http://ww.hpux.ws/merijn/
NL Hoofddorp http://www.cmve.net/~merijn/

Enjoy, have FUN! H.Merijn
Enjoy, Have FUN! H.Merijn
Youlette Etienne_2
Regular Advisor

Re: DBD Perl Module Install

Procura:

I am using Ansi C compiler. We are in the process of installing Amisys Advance, and from their instructions, I ran the following "Config" command:

Configure -Duselargefiles -A prepend:libswanted='cl pthread '-Dprefix=/opt/perl5 -Accflags="+z" =Duse64bitall

Below is the information:
=>perl -V
Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
Platform:
osname=hpux, osvers=11.11, archname=PA-RISC2.0
uname='hp-ux miaux07 b.11.11 u 9000800 3832670146 unlimited-user license '
config_args='-Duselargefiles -A prepend:libswanted=cl pthread -Dprefix=/opt/perl5 -Accflags=+z =Duse64b
itall'
hint=previous, useposix=true, d_sigaction=define
usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-Ae -D_HPUX_SOURCE -Wl,+vnocompatwarnings -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
+z',
optimize='+O2 +Onolimit',
cppflags='-Aa -D__STDC_EXT__ -D_HPUX_SOURCE -D_HPUX_SOURCE -Wl,+vnocompatwarnings -D_HPUX_SOURCE -Wl,+v
nocompatwarnings -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 +z'
ccversion='B.11.11.10', gccversion='', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='/usr/bin/ld', ldflags =' -L/usr/local/lib'
libpth=/usr/local/lib /lib /usr/lib /usr/ccs/lib
libs=-lnsl -lnm -lndbm -lmalloc -ldld -lm -lcrypt -lsec -lc
perllibs=-lnsl -lnm -lmalloc -ldld -lm -lcrypt -lsec -lc
libc=/lib/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/usr/local/lib'


Characteristics of this binary (from libperl):
Compile-time options: PERL_MALLOC_WRAP USE_LARGE_FILES USE_PERLIO
Built under hpux
Compiled at Apr 13 2006 14:52:59
@INC:
/opt/perl5/lib/5.8.8/PA-RISC2.0
/opt/perl5/lib/5.8.8
/opt/perl5/lib/site_perl/5.8.8/PA-RISC2.0
/opt/perl5/lib/site_perl/5.8.8
/opt/perl5/lib/site_perl

If at first you don't succeed, change the rules!
H.Merijn Brand (procura
Honored Contributor

Re: DBD Perl Module Install

>> Configure -Duselargefiles -A prepend:libswanted='cl pthread '-Dprefix=/opt/perl5 -Accflags="+z" =Duse64bitall

1. -Duselargefiles is the default, and shouldn't be needed
2. The -A prepend... argument is correct
3. The -Accflags should not be needed, and *IF* you use it, I'd suggest a capital Z
4. I hope and presume that you mistyped the last argument, as that is what is causing your trouble. I think you meant

-Duse64bitall

instead of

=Duse64bitall

Your -V output says I'm right:
Characteristics of this binary (from libperl):
Compile-time options: PERL_MALLOC_WRAP USE_LARGE_FILES USE_PERLIO
Built under hpux

no use64bitall here.

Now what happened is that you built a 32bit perl, and you expect it to link to 64bit libraries. That won't work.

# ./Configure -Duse64bitall -A prepend:libswanted='cl pthread '-Dprefix=/opt/perl5 -des

Enjoy, Have FUN! H.Merijn
Enjoy, Have FUN! H.Merijn
Zinky
Honored Contributor

Re: DBD Perl Module Install

I built PERL using the sources from Perl.Org. I used aCC on HP-UX 11.11. This is my Perl -V output:

Summary of my perl5 (revision 5 version 8 subversion 7) configuration:
Platform:
osname=hpux, osvers=11.11, archname=PA-RISC2.0-LP64
uname='hp-ux pgdbsrv1 b.11.11 u 9000800 692359306 unlimited-user license '
config_args='-Ubincompat5005 -Duselargefiles -A prepend:libswanted=cl pthread -Duse64bitall'
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef use5005threads=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 =' +z -Ae -D_HPUX_SOURCE -Wl,+vnocompatwarnings +DD64 -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 ',
optimize='+O2 +Onolimit',
cppflags='-Aa -D__STDC_EXT__ -D_HPUX_SOURCE +z -Ae -D_HPUX_SOURCE -Wl,+vnocompatwarnings +DD64 -I/usr/local/include'
ccversion='B.11.11.06', 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 =' +DD64 -L/usr/local/lib -L/lib/pa20_64'
libpth=/usr/local/lib /lib/pa20_64 /lib /usr/lib /usr/ccs/lib
libs=-lcl -lpthread -lnsl -lnm -ldl -ldld -lm -lsec -lc
perllibs=-lcl -lpthread -lnsl -lnm -ldl -ldld -lm -lsec -lc
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/usr/local/lib -L/lib/pa20_64'


Characteristics of this binary (from libperl):
Compile-time options: USE_64_BIT_INT USE_64_BIT_ALL USE_LARGE_FILES
Built under hpux
Compiled at Jan 24 2006 08:57:44
@INC:
/usr/local/perl5.8.7/lib/5.8.7/PA-RISC2.0-LP64
/usr/local/perl5.8.7/lib/5.8.7
/usr/local/perl5.8.7/lib/site_perl/5.8.7/PA-RISC2.0-LP64
/usr/local/perl5.8.7/lib/site_perl/5.8.7
/usr/local/perl5.8.7/lib/site_perl


I compiled DBD and DBI Oracle w/o any issues at all. I had a full install of Oracle 9.2.0.4 64bit.

Please refer to http://forums1.itrc.hp.com/service/forums/questionanswer.do?threadId=993527

Hakuna Matata

Favourite Toy:
AMD Athlon II X6 1090T 6-core, 16GB RAM, 12TB ZFS RAIDZ-2 Storage. Linux Centos 5.6 running KVM Hypervisor. Virtual Machines: Ubuntu, Mint, Solaris 10, Windows 7 Professional, Windows XP Pro, Windows Server 2008R2, DOS 6.22, OpenFiler
Youlette Etienne_2
Regular Advisor

Re: DBD Perl Module Install

Ok, I restarted everything from scratch and used the "Configure" command that you provided above. I no longer get that error message. It appears that this worked. Now, I am getting another error message that appears to be related to the DBI module that I installed.

/software/perl_modules/DBD-Oracle-1.17 =>make test
PERL_DL_NONLAZY=1 /usr/local/bin/perl "-MExtUtils::Command::MM" "-e" "te
st_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/01base................ok
t/10general.............DBI connect('','scott/tiger',...) failed: ORA-01034: ORA
CLE not available
ORA-27101: shared memory realm does not exist
HP-UX Error: 2: No such file or directory (DBD ERROR: OCISessionBegin) at t/10ge
neral.t line 18
Undefined subroutine &main::BAILOUT called at t/10general.t line 21.
# Looks like your test died before it could output anything.
t/10general.............dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 1-33
Failed 33/33 tests, 0.00% okay
t/15nls.................DBI connect('','scott/tiger',...) failed: ORA-01034: ORA
CLE not available
ORA-27101: shared memory realm does not exist
...
it continues with the same error

Where is the "scott/tiger" coming from? Is this what is creating the problem? I am able to connect to the remote database as the below defined user, using sqlplus.

Environment:
ORACLE_USERID=*******/*******
ORACLE_BASE=/app/oracle
ORACLE_SID=amisysp
ORACLE_OWNER=oracle
ORACLE_TERM=vt100
ORACLE_HOME=/app/oracle/product/9.2.0

***Moderator Edit: removed username & password information for security reasons***
If at first you don't succeed, change the rules!
H.Merijn Brand (procura
Honored Contributor

Re: DBD Perl Module Install

1. It's not advicable to post real usernames and passwords on a forum open as this

2. The error is that the database cannot be accessed. It complains that the shared memory realm does not exist, which indicated that there is no database accessible with the ORACLE_SID that it sees.

Indeed, it requires ORACLE_USERID to be (correctly) set, but I think that the database should be started first.
I'm by no means an Oracle expert. In fact I don't even fainlty like Oracle. But does

# sqlplus $ORACLE_USERID

work from the command line?

Enjoy, Have FUN! H.Merijn
Enjoy, Have FUN! H.Merijn
Youlette Etienne_2
Regular Advisor

Re: DBD Perl Module Install

Yes, I should have known better. Not paying attention.

The sqlplus $ORACLE_USERID works.

I consulted with the DBA. His response is that it would not work because the database is on a remote server. However, there was a similar post where setting the additional HOST and TWO_DUMMY variables were set, and the issue was resolved. That didn't help here.
If at first you don't succeed, change the rules!
H.Merijn Brand (procura
Honored Contributor

Re: DBD Perl Module Install

It's all written in README's

It's not TWO_DUMMY, but TWO_TASK:

Example (remote database):

export ORACLE_USERID=
export ORACLE_HOME=
export ORACLE_SID=@
export SHLIB_PATH=$ORACLE_HOME/lib #for 32bit HP
export LD_LIBRARY_PATH=$ORACLE_HOME/lib #for 64bit HP (I defined them both)

and

Having done this all of my systems (even those without a hint of
oracle on them) could access remote Oracle servers by setting TWO_TASK
appropriately. SQL*Net didn't seem to come into it.

Enjoy, Have FUN! H.Merijn
Enjoy, Have FUN! H.Merijn
Youlette Etienne_2
Regular Advisor

Re: DBD Perl Module Install

These variables are all set correctly from the oracle environment files setup by the DBAs, following the instructions in the README.hpux file. I mistyped with the TWO_TASK setting. That too is exported with the suggested variable. Still doesn't work. I will have to bypass this for now and come back to it. Thanks for your help.
If at first you don't succeed, change the rules!
Youlette Etienne_2
Regular Advisor

Re: DBD Perl Module Install

The relevant applications that required these modules is functioning correctly, and logging into the remote database using these Perl modules. I continued with the "make install" and ran "perldoc perllocal" to check.

Thanks so much for your help.
If at first you don't succeed, change the rules!