Operating System - Linux
1828186 Members
2417 Online
109975 Solutions
New Discussion

problem compiling DBD::Oracle on hp-ux 11.23 Itanium

 
Morten Kristiansen
Frequent Advisor

problem compiling DBD::Oracle on hp-ux 11.23 Itanium

Hi,

I've installed Oracle 9.2.0.4, perl 5.8.8, DBI 1.53 and now trying DBD 1.19. Everything looks good until I run "make test", then I get errors like these:

t/55nested............../usr/lib/hpux64/dld.so: Unsatisfied code symbol '__divsi3' in load module '/usr/local/src/DBD-Oracle-1.19/blib/arch/auto/DBD/Oracle/Oracle.so'.
Can't load '/usr/local/src/DBD-Oracle-1.19/blib/arch/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: Unresolved external at /opt/perl5/lib/5.8.8/IA64.ARCHREV_0-LP64/DynaLoader.pm line 230.
at t/55nested.t line 17
Compilation failed in require at t/55nested.t line 17.
BEGIN failed--compilation aborted at t/55nested.t line 17.
t/55nested..............dubious
Test returned status 215 (wstat 55040, 0xd700)
t/60reauth............../usr/lib/hpux64/dld.so: Unsatisfied code symbol '__divsi3' in load module '/usr/local/src/DBD-Oracle-1.19/blib/arch/auto/DBD/Oracle/Oracle.so'.
Can't load '/usr/local/src/DBD-Oracle-1.19/blib/arch/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: Unresolved external at /opt/perl5/lib/5.8.8/IA64.ARCHREV_0-LP64/DynaLoader.pm line 230.
at t/nchar_test_lib.pl line 6
Compilation failed in require at t/nchar_test_lib.pl line 6.
BEGIN failed--compilation aborted at t/nchar_test_lib.pl line 6.
Compilation failed in require at t/60reauth.t line 18.
t/60reauth..............dubious
Test returned status 215 (wstat 55040, 0xd700)
t/70meta................/usr/lib/hpux64/dld.so: Unsatisfied code symbol '__divsi3' in load module '/usr/local/src/DBD-Oracle-1.19/blib/arch/auto/DBD/Oracle/Oracle.so'.
Can't load '/usr/local/src/DBD-Oracle-1.19/blib/arch/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: Unresolved external at /opt/perl5/lib/5.8.8/IA64.ARCHREV_0-LP64/DynaLoader.pm line 230.
at t/nchar_test_lib.pl line 6
Compilation failed in require at t/nchar_test_lib.pl line 6.
BEGIN failed--compilation aborted at t/nchar_test_lib.pl line 6.
Compilation failed in require at t/70meta.t line 21.


This is the output of perl -V:

Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
Platform:
osname=hpux, osvers=11.23, archname=IA64.ARCHREV_0-LP64
uname='hp-ux hpdb7 b.11.23 u ia64 3810985124 unlimited-user license '
config_args='-Dusedevel -Duse64bitint -Dcc=gcc -des'
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='gcc', ccflags ='-mlp64 -DPERL_DONT_CREATE_GVSV -D_HPUX_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/pro/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-g -O',
cppflags='-mlp64 -DPERL_DONT_CREATE_GVSV -D_HPUX_SOURCE -mlp64 -DPERL_DONT_CREATE_GVSV -D_HPUX_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/pro/local/include'
ccversion='', gccversion='4.1.1', 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 =' -mlp64 -L/usr/local/lib -L/usr/lib/hpux64'
libpth=/usr/lib/hpux64 /lib /usr/lib /usr/ccs/lib /usr/local/lib
libs=-lcl -lpthread -lnsl -lnm -ldl -ldld -lm -lsec -lc
perllibs=-lcl -lpthread -lnsl -lnm -ldl -ldld -lm -lsec -lc
libc=/usr/lib/hpux64/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='-b -L/usr/local/lib -L/usr/lib/hpux64'


Characteristics of this binary (from libperl):
Compile-time options: DEBUGGING PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP
USE_64_BIT_ALL USE_64_BIT_INT USE_LARGE_FILES
USE_PERLIO
Built under hpux
Compiled at Jan 3 2007 17:13:33
@INC:
/opt/perl5/lib/5.8.8/IA64.ARCHREV_0-LP64
/opt/perl5/lib/5.8.8
/opt/perl5/lib/site_perl/5.8.8/IA64.ARCHREV_0-LP64
/opt/perl5/lib/site_perl/5.8.8
/opt/perl5/lib/site_perl
.
10 REPLIES 10
Morten Kristiansen
Frequent Advisor

Re: problem compiling DBD::Oracle on hp-ux 11.23 Itanium

A little bit more information. The gcc compiler is a downloaded binary from "The porting and archiving center for HP-UX". I'm also using gnu make 3.81 compiled with gcc 4.1.1.

I've read the README files on perl and DBD and have run the suggested findSymbol, but it didn't find any '__divsi3'. I've also set all environment variables as suggested in the README files. Have also checked that the hints/hpux.sh is up to date.

So now I'm stucked. I don't have any knowledge on which libraries have to be included. So I don't know what to look for. Have tried to search both itrc forums and google without any luck.

Please help! Thanks in advance.

regards
Morten K
Dennis Handly
Acclaimed Contributor

Re: problem compiling DBD::Oracle on hp-ux 11.23 Itanium

Morten Kristiansen
Frequent Advisor

Re: problem compiling DBD::Oracle on hp-ux 11.23 Itanium

Thanks, but I've tried those and as you can see in the last link was he able to compile DBD, but failed in compiling Apache.

Can anybody tell me exact syntax to link in then libgcc library. I tried to set a environment variable LDFLAGS to /usr/local/lib/gcc/ia64-hp-hpux11.23/4.1.1/hpux64/libgcc.a and also included this catalogue in LD_LIBRARY_PATH and SHLIB_PATH. I have also edited the config.sh to have "-lgcc" in the "libs" parameter.

When running "make test" in building perl, I get this message:
lib/ExtUtils/t/Embed......................Note (probably harmless): No library found for -lgcc
ok
Dennis Handly
Acclaimed Contributor

Re: problem compiling DBD::Oracle on hp-ux 11.23 Itanium

>Can anybody tell me exact syntax to link in then libgcc library. I tried to set a environment variable LDFLAGS to /usr/local/lib/gcc/ia64-hp-hpux11.23/4.1.1/hpux64/libgcc.a

You would need -L/usr/local/lib/gcc/ia64-hp-hpux11.23/4.1.1/hpux64 -lgcc

>When running "make test" in building perl, I get this message:
lib/ExtUtils/t/Embed......................Note (probably harmless): No library found for -lgcc

I'm surprised why it says "harmless"??
Morten Kristiansen
Frequent Advisor

Re: problem compiling DBD::Oracle on hp-ux 11.23 Itanium

Hi,

thanks for the quick answer and exuse my little knowledge of libraries and compiling packages. Can you also tell me where i should put that string? Is it when I'm compiling perl? And is it a parameter to Configure? What parameters should have this string?
Morten Kristiansen
Frequent Advisor

Re: problem compiling DBD::Oracle on hp-ux 11.23 Itanium

I also have to say that I'm building perl with dynamic libs, but isn't liggcc.a a static library? Would that make any difference? Or making any problems for me?
Dennis Handly
Acclaimed Contributor

Re: problem compiling DBD::Oracle on hp-ux 11.23 Integrity

>Can you also tell me where I should put that string?

No clue. If you put them in LDOPTS, then any link will have them.

>I'm building perl with dynamic libs, but isn't libgcc.a an archive library?

Hopefully you can put the one object into every shlib that needs it:
/usr/local/lib/hpux32/libgcc.a[__divsi3.o]:
0x00000000 T __divsi3

Morten Kristiansen
Frequent Advisor

Re: problem compiling DBD::Oracle on hp-ux 11.23 Itanium

Thanks Dennis, but that wasn't any use for me. I don't have any parameter with name LDOPTS.

Anybody who knows how to do this?
Morten Kristiansen
Frequent Advisor

Re: problem compiling DBD::Oracle on hp-ux 11.23 Itanium

OK, I tried to set the environment variable like this:
export LDOPTS='+s -L/usr/local/lib/gcc/ia64-hp-hpux11.23/4.1.1/hpux64 -lgcc'

then when running Configure under perl, I got this error:
Checking how to test for symbolic links...
You can test for symbolic links with 'test -h'.


Good, your tr supports [:lower:] and [:upper:] to convert case.
Using [:upper:] and [:lower:] to convert case.
ld: Can't find library or mismatched ABI for -lgcc
Fatal error.
collect2: ld returned 1 exit status
You need to find a working C compiler.
Dennis Handly
Acclaimed Contributor

Re: problem compiling DBD::Oracle on hp-ux 11.23 Itanium

>I tried to set the environment variable like this:
export LDOPTS='+s -L/usr/local/lib/gcc/ia64-hp-hpux11.23/4.1.1/hpux64 -lgcc'

That's what I would use except I would leave the +s for each step to add as needed.

>ld: Can't find library or mismatched ABI for -lgcc

Ok, it seems you are creating a 32 bit executable. That means you need to have BOTH 32 and 64 bit paths.

export LDOPTS='-L/usr/local/lib/gcc/ia64-hp-hpux11.23/4.1.1/hpux64 -L/usr/local/lib/gcc/ia64-hp-hpux11.23/4.1.1/hpux32 -lgcc'