Subject: make replace and library dynamic loading
To: None <tech-pkg@netbsd.org>
From: Xavier HUMBERT <xavier.humbert@xavhome.fr.eu.org>
List: tech-pkg
Date: 02/26/2003 14:59:36
Hi,
I've been bitten by "make replace" breaking dynamic libraries dependencies.
I updated expat, from which depends php-xml, then after upgrading php,
got this error in the logfile :
> [26-Feb-2003 14:30:41] PHP Warning: Unable to load dynamic library
> '/usr/pkg/lib/php/20020429/xml.so' - Shared object "libexpat.so.1"
> notfound in Unknown on line 0
Fortunately, I do have a log file....
And, in fact, if I check the library (this is ldd *after* I fix the problem) :
> # ldd /usr/pkg/lib/php/20020429/xml.so
> /usr/pkg/lib/php/20020429/xml.so:
> -lexpat.4 => /usr/pkg/lib/libexpat.so.4
What hurts me, is that php-xml is linked against a versioned library,
while there is a symlink which is precisely done for this purpose :
> ls -l /usr/pkg/lib/libexpat.so
> lrwxr-xr-x 1 root wheel 15 Feb 12 15:00
> /usr/pkg/lib/libexpat.so@ -> libexpat.so.4.0
So I'm asking if :
-- there is a way to check your system for those problems (with find and ldd ?)
-- why use -llibname.vers in make file, instead relying on symlinks mechanisms ?
--
Xavier HUMBERT - Systemes et Reseaux | labo-info@injep.fr
INJEP | humbert@injep.fr