Operating System - Linux
1748286 Members
3321 Online
108761 Solutions
New Discussion юеВ

Couldn't install DBD::Oracle 1.18

 
Nikolay Aralovets
Occasional Advisor

Couldn't install DBD::Oracle 1.18

Hi all!

I try to install perl module DBD::Oracle 1.18 on HP-UX v11.23 (ia64 0190470773).
My perl version is D.5.8.0.D (32&64 bit) from OS base.
My CC is gcc:
--------------------------------------------
bash-3.00# /usr/local/gcc344/bin/gcc -v
Reading specs from /usr/local/gcc344/lib/gcc/ia64-hp-hpux11.23/3.4.4/specs
Configured with: ./configure --prefix=/usr/local/gcc344 --with-gnu-as --disable-nls --disable-libgcj --enable-languages=c,c++ --enable-threads=posix --without-gnu-ld --with-as=/usr/local/bin/as
Thread model: posix
gcc version 3.4.4
---------------------------------------------
Before this I install DBI module:
perl Makefile.pl
gmake
gmake test
gmake install
All stage was ended successfully

Then I try to install DBD::Oracle
perl Makefile.pl -l
--------------------------------------------
Using DBI 1.52 (for perl 5.008 on IA64.ARCHREV_0-thread-multi) installed in /opt/perl/lib/site_perl/5.8.0/IA64.ARCHREV_0-thread-multi/auto/DBI/

Configuring DBD::Oracle for perl 5.008 on hpux (IA64.ARCHREV_0-thread-multi)

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

Using Oracle in /u01/app/oracle/product/9.2.0/db
DEFINE _SQLPLUS_RELEASE = "902000700" (CHAR)
Oracle version 9.2.0.7 (9.2)
Found direct-link candidates: libclntsh.so
Oracle sysliblist: -l:librt.so -l:libnss_dns.so.1 -l:libdld.so -lm -lpthread -lCsup -lunwind
Found header files in /u01/app/oracle/product/9.2.0/db/rdbms/public /u01/app/oracle/product/9.2.0/db/rdbms/demo.
Your LD_LIBRARY_PATH/SHLIB_PATH env var is set to '/usr/local/gcc344/lib:/u01/app/oracle/product/9.2.0/db/lib:/u01/app/oracle/product/9.2.0/db/lib32:/usr/lib/hpux32:/usr/local/gcc344/lib:/u01/app/oracle/product/9.2.0/db/lib:/u01/app/oracle/product/9.2.0/db/lib32:/usr/lib/hpux64'
WARNING: If you have trouble, see README.hpux.txt...
you may have to build your own perl, or go hunting for libraries

Checking for functioning wait.ph


System: perl5.008 hp-ux bigsur03 b.11.22 u ia64 1800516905 unlimited-user license
Compiler: gcc -D_POSIX_C_SOURCE=199506L -D_REENTRANT -D_HPUX_SOURCE -fPIC -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
Linker: /usr/bin/ld
Sysliblist: -l:librt.so -l:libnss_dns.so.1 -l:libdld.so -lm -lpthread -lCsup -lunwind
Linking with -lclntsh.

Checking if your kit is complete...
Warning: the following files are missing in your kit:
META.yml
Please inform the author.
Note (probably harmless): No library found for -l:librt.so
Note (probably harmless): No library found for -l:libnss_dns.so.1
Note (probably harmless): No library found for -l:libdld.so
LD_RUN_PATH=/u01/app/oracle/product/9.2.0/db/lib32:/usr/lib/hpux32
Using DBD::Oracle 1.18.
Using DBD::Oracle 1.18.
Using DBI 1.52 (for perl 5.008 on IA64.ARCHREV_0-thread-multi) installed in /opt/perl/lib/site_perl/5.8.0/IA64.ARCHREV_0-thread-multi/auto/DBI/
Writing Makefile for DBD::Oracle

*** 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?)
--------------------------------------------
Then I do gmake and get error:
--------------------------------------------
Running Mkbootstrap for DBD::Oracle ()
chmod 644 Oracle.bs
rm -f blib/arch/auto/DBD/Oracle/Oracle.so
gcc +b "/u01/app/oracle/product/9.2.0/db/lib32:/usr/lib/hpux32" -shared -static-libgcc -fPIC -L/usr/lib/hpux32 Oracle.o dbdimp.o oci8.o -o blib/arch/auto/DBD/Oracle/Oracle.so -L/u01/app/oracle/product/9.2.0/db/lib32 -lclntsh -lm -lpthread -lCsup -lunwind
gcc: +b: No such file or directory
gcc: /u01/app/oracle/product/9.2.0/db/lib32:/usr/lib/hpux32: No such file or directory
gmake: *** [blib/arch/auto/DBD/Oracle/Oracle.so] Error 1
----------------------------------------------
Can anybody help me?
10 REPLIES 10
Steven E. Protter
Exalted Contributor

Re: Couldn't install DBD::Oracle 1.18

Shalom,

If you have trouble, see README.hpux.txt...

Warning: the following files are missing in your kit:
META.yml

gcc: +b: No such file or directory

I think the install failed because you are missing something.

Was the README file helpful?

SEP
Steven E Protter
Owner of ISN Corporation
http://isnamerica.com
http://hpuxconsulting.com
Sponsor: http://hpux.ws
Twitter: http://twitter.com/hpuxlinux
Founder http://newdatacloud.com
spex
Honored Contributor

Re: Couldn't install DBD::Oracle 1.18

Hi,

See this rather ambiguous explanation from the aforementioned README.hpux:

======================================
Compiling Perl 5 on HP-UX

When compiling Perl, you must use an ANSI C compiler. The C compiler that ships with all HP-UX systems is a K&R compiler that should only be used to build new kernels.

Perl can be compiled with either HP's ANSI C compiler or with gcc. The former is recommended, as not only can it compile Perl with no difficulty, but also can take advantage of features listed later that require the use of HP compiler-specific command-line flags.

If you decide to use gcc, make sure your installation is recent and complete, and be sure to read the Perl README file for more gcc-specific details.
======================================

So, at best, the ANSI C compiler is preferred. Based on your output, it would appear that GCC doesn't understand the "+b" switch.

It also seems that you have a 32/64-bit compatibility issue: on my 64-bit Oracle 9i/HP-UX systems, $ORACLE_HOME/db/lib32 and /usr/lib/hpux32 do not exist. It would seem that they don't exist on your system either.

PCS
Nikolay Aralovets
Occasional Advisor

Re: Couldn't install DBD::Oracle 1.18

Yes, I read README.hpux file, but I don't see
there anything about my errors. Options for gcc compiler (make with thread support) like correct. But I see that LD options
LD = gcc
in Makefile. Is this correct?

About the lost file - I could't find its in module sources. And I check md5 summ my sources with original - they identical.

For what the file I needs and why I have not?
Nikolay Aralovets
Occasional Advisor

Re: Couldn't install DBD::Oracle 1.18

To spex

My version perl was compiled with gcc.
And I have in my system
$ORACLE_HOME/lib32 & /usr/lib/hpux32
directory
ORACLE_HOME=/u01/app/oracle/product/9.2.0/db
-----------------------------------------
perl -V
Summary of my perl5 (revision 5.0 version 8 subversion 0) configuration:
Platform:
osname=hpux, osvers=11.22, archname=IA64.ARCHREV_0-thread-multi
uname='hp-ux bigsur03 b.11.22 u ia64 1800516905 unlimited-user license '
config_args='-des -Dcc=gcc -Dcf_by=ActiveState -Dcf_email=ActivePerl@ActiveState.com -Uinstallusrbinperl -Ud_sigsetjmp -Dusethreads -Duseithreads -Ulocincpth= -Uloclibpth= -Accflags=-fPIC -Dd_attribut=undef -Dcccdlflags=-fPIC -Uoptimize -Duselargefiles -Dprefix=/opt/perl -Duselargefiles'
hint=recommended, useposix=true, d_sigaction=define
usethreads=define use5005threads=undef useithreads=define usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags ='-D_POSIX_C_SOURCE=199506L -D_REENTRANT -D_HPUX_SOURCE -fPIC -fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize=' ',
cppflags='-D_HPUX_SOURCE -D_POSIX_C_SOURCE=199506L -D_REENTRANT -D_HPUX_SOURCE -fPIC -fno-strict-aliasing'
ccversion='', gccversion='3.2 20020329 (experimental)', gccosandvers='hpux11.20'
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='gcc', ldflags =' -L/usr/lib/hpux32'
libpth=/usr/lib/hpux32 /lib /usr/lib /usr/ccs/lib /usr/local/lib
libs=-lnsl -lnm -lndbm -ldl -ldld -lm -lsec -lpthread
perllibs=-lnsl -lnm -ldl -ldld -lm -lsec -lpthread
libc=/usr/lib/hpux32/libc.so, so=so, useshrplib=false, libperl=libperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_hpux.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-B,deferred '
cccdlflags='-fPIC', lddlflags='-shared -static-libgcc -fPIC -L/usr/lib/hpux32'


Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL_IMPLICIT_CONTEXT
Locally applied patches:
ActivePerl Build 806
Built under hpux
Compiled at May 2 2003 21:27:40
@INC:
/opt/perl/lib/5.8.0/IA64.ARCHREV_0-thread-multi
/opt/perl/lib/5.8.0
/opt/perl/lib/site_perl/5.8.0/IA64.ARCHREV_0-thread-multi
/opt/perl/lib/site_perl/5.8.0
/opt/perl/lib/site_perl
----------------------------------------



spex
Honored Contributor

Re: Couldn't install DBD::Oracle 1.18

Hi,

Based on your output, your version of gcc (3.4.4) doesn't understand:

1) The '+b' switch
2) The compound path '/u01/app/oracle/product/9.2.0/db/lib32:/usr/lib/hpux32'

I recommend:

1) Modify your configuration and remake.

2) Upgrade gcc to gcc-4.1.1, available here:
http://hpux.connect.org.uk/hppd/hpux/Gnu/gcc-4.1.1/
and trying again.

3) Use the compiler recommended in README.hpux.txt, HP ANSI C.

4) Look at this thread:
http://forums1.itrc.hp.com/service/forums/questionanswer.do?threadId=1005263

PCS
Nikolay Aralovets
Occasional Advisor

Re: Couldn't install DBD::Oracle 1.18

To spex

Thank for your help.
I try compiled DBD with new versions of gcc.

"Use the compiler recommended in README.hpux.txt, HP ANSI C" - this don't work, because perl compiled with gcc (in the document README.hpux on it is specified)
Dennis Handly
Acclaimed Contributor

Re: Couldn't install DBD::Oracle 1.18

As mentioned +b is a linker option. So using LD=gcc isn't a good idea. (Unfortunately using LD=ld isn't good either.)

If you want to use +b in a driver, you need to use: -Wl,+b,lib-paths
Nikolay Aralovets
Occasional Advisor

Re: Couldn't install DBD::Oracle 1.18

To Dennis Handly

You have told about LD right.

To all

I have insalled last versions Perl & gcc.
After this do:
perl Makefile.pl & gmake
and I receive following:
----------------------------------------
Running Mkbootstrap for DBD::Oracle ()
chmod 644 Oracle.bs
rm -f blib/arch/auto/DBD/Oracle/Oracle.so
gcc -shared -static-libgcc -fPIC -L/usr/lib/hpux32 Oracle.o dbdimp.o oci8.o +s +n -L/u01/app/oracle/product/9.2.0/db/rdbms/lib32/ -L/u01/app/oracle/product/9.2.0/db/lib32/ -lclntsh `cat /u01/app/oracle/product/9.2.0/db/lib32/ldflags` -lm -lpthread -o blib/arch/auto/DBD/Oracle/Oracle.so \
\

gcc: +s: No such file or directory
gcc: +n: No such file or directory
gmake: *** [blib/arch/auto/DBD/Oracle/Oracle.so] Error 1
---------------------------------------
I remove +s +n parameters in Makefile and run gmake again. The command comes to the end successfully
After this I run gmake test and see following:
------------------------------------------
gmake: *** [test_dynamic] Error 255
------------------------------------------
Further I run gmake install

Has tried to establish a connection with base - all has earned

Big thank for our answers!
Dennis Handly
Acclaimed Contributor

Re: Couldn't install DBD::Oracle 1.18

+s and +n are also linker parms. You could try setting LD=ld. Or use -Wl,+n -Wl,+s with gcc.
Note you can enable +s with chatr +s enable. If it links without +n, you didn't really need it.