Does DBI.pm's DBI.so rely on a particular version of libc.so.6?

It builds (apparently) successfully but when I run "make test" I get failures 
saying "Error:  Can't load '/home/tony/dbi-1.58/blib/arch/auto/DBI/DBI.so' 
for module DBI: /home/tony/dbi-1.58/blib/arch/auto/DBI/DBI.so: cannot open 
shared object file: No such file or directory 
at /scratchbox/tools/lib/perl5/5.8.4/i686-linux-thread-multi/DynaLoader.pm 
line 230"

Running "strace make test", it appears to be trying and failing to load 
libc.so.6 from all over the filesystem, for example:
---------------------------------------------------------------------------------------------------
open("/scratchbox/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or 
directory)
open("/host_usr/lib/tls/i686/mmx/cmov/libc.so.6", O_RDONLY) = -1 ENOENT (No 
such file or directory)
stat64("/host_usr/lib/tls/i686/mmx/cmov", 0xbf8633a8) = -1 ENOENT (No such 
file or directory)
open("/host_usr/lib/tls/i686/mmx/libc.so.6", O_RDONLY) = -1 ENOENT (No such 
file or directory)
stat64("/host_usr/lib/tls/i686/mmx", 0xbf8633a8) = -1 ENOENT (No such file or 
directory)
open("/host_usr/lib/tls/i686/cmov/libc.so.6", O_RDONLY) = -1 ENOENT (No such 
file or directory)
stat64("/host_usr/lib/tls/i686/cmov", 0xbf8633a8) = -1 ENOENT (No such file or 
directory)
open("/host_usr/lib/tls/i686/libc.so.6", O_RDONLY) = -1 ENOENT (No such file 
or directory)
stat64("/host_usr/lib/tls/i686", 0xbf8633a8) = -1 ENOENT (No such file or 
directory)
open("/host_usr/lib/tls/mmx/cmov/libc.so.6", O_RDONLY) = -1 ENOENT (No such 
file or directory)
stat64("/host_usr/lib/tls/mmx/cmov", 0xbf8633a8) = -1 ENOENT (No such file or 
directory)
open("/host_usr/lib/tls/mmx/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or 
directory)
---------------------------------------------------------------------------------------------------------
Since libc.so.6 exists in /lib, my best guess is that perhaps DBI doesn't like 
the particular version of this library (it's symlinked to libc-2.3.6.so, as 
opposed to libc-2.5.so on a system where DBI works.) so it's hunting for a 
version it can use (though why it's going through those paths is a mystery).

Is this my problem or is it something else?

If it is the problem, was there an older version of DBI that can use 
libc-2.3.6.so? (I've tried building a few older ones with no success though) 
or do I need to build DBI statically linked against a newer version of the 
library?  (It's for public distribution, so I can't just put a newer one in 
for dynamic linking.)

Thanks.
-- 
Tony Green
Ipswich, Suffolk, England
http://www.beermad.org.uk
http://no2id-ip.web-brewer.co.uk

** This message is digitally signed. If your email client is unable to read 
digital signatures, you may see an attachment that you cannot open. See 
http://www.gnupg.org/(en)/documentation/faqs.html for more information.
You can validate my PGP key from my website: http://www.beermad.org.uk/
* No Micro$oft products were used in the generation of this communication


Reply via email to