This is a discussion on DBI on HP-UX 11.11 with Perl 5.8.3 and Apache (mod_perl 1.99) - HP UX ; Hi. I am unsuccessfully trying to use DBI under mod_perl on HP-UX (Apache 2.0.55). I have tried compiling different ways and reading everything I can find from searching the web, but I can't seem to solve this one. Here are ...
Hi. I am unsuccessfully trying to use DBI under mod_perl on HP-UX
(Apache 2.0.55). I have tried compiling different ways and reading
everything I can find from searching the web, but I can't seem to
solve this one.
Here are details of my config:
Apache/2.0.55 HP-UX_Apache-based_Web_Server (Unix) mod_perl/1.99_16
Perl/v5.8.3 DAV/2 PHP/5.0.4 mod_jk2/2.0.3-dev configured
Summary of my perl5 (revision 5.0 version 8 subversion 3)
osname=hpux, osvers=11.11, archname=PA-RISC2.0
uname='hp-ux server b.11.11 u 9000800 746477156 unlimited-user
config_args='-A prepend:libswanted=cl pthread -Duselargefiles'
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef use5005threads=undef useithreads=undef
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
cc='/opt/ansic/bin/cc', ccflags =' -Ae -D_HPUX_SOURCE -Wl,
+vnocompatwarnings -I/usr/local/include -D_LARGEFILE_SOURCE ',
cppflags='-Aa -D__STDC_EXT__ -D_HPUX_SOURCE -Aa -Ae -D_HPUX_SOURCE
ccversion='B.11.11.24830.GP', gccversion='', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
d_longlong=define, longlongsize=8, d_longdbl=define,
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
Linker and Libraries:
ld='/usr/bin/ld', ldflags ='-L/usr/local/lib -L/opt/ansic/lib'
libpth=/usr/local/lib /lib /usr/lib /usr/ccs/lib /opt/ansic/lib
libs=-lcl -lpthread -lnsl -lnm -lndbm -lmalloc -ldld -lm
perllibs=-lcl -lpthread -lnsl -lnm -lmalloc -ldld -lm
libc=/lib/libc.sl, so=sl, useshrplib=false, libperl=libperl.a
dlsrc=dl_hpux.xs, dlext=sl, d_dlsymun=undef, ccdlflags='-Wl,-E -
cccdlflags='+Z', lddlflags='-b +vnocompatwarnings -L/usr/local/lib
The Apache installation is the standard "HPWS" (HP Web Server)
When a module is loaded by the server and said module includes DBI.pm,
I get the following error in Apache's error_log:
failed to resolve handler `bem::bem1': Can't find 'boot_DBI' symbol
in /opt/perl/lib/site_perl/5.8.3/PA-RISC2.0/auto/DBI/DBI.sl\n at /opt/
Thus, it is able to find the module and shared library, but it cannot
find the symbol it's looking for in that file. A simple 'nm' shows
the symbol is indeed there.
# nm -x /opt/perl/lib/site_perl/5.8.3/PA-RISC2.0/auto/DBI/DBI.sl |
boot_DBI |0x0001afd0|extern|code |$CODE$
boot_DBI |0x0001afd0|extern|entry |
dbi_bootinit |0x00007918|static|entry |$CODE$
So I assume I have some sort of a compilation/linking issue here, but
I can't say for sure what it may be. Maybe something to do with
static/dynamic linking? I tried building the DBI module with static
linking, but it failed during 'make test' with errors about Pari.a and
addresses there. Presumably this could mean that THAT needs to be
relinked as well, but I don't want to get into a huge mess if someone
has another suggestion.
Any thoughts would be much appreciated.