[csw-maintainers] Determining shared object dependencies
Maciej (Matchek) Blizinski
maciej at opencsw.org
Wed Dec 23 18:10:44 CET 2009
Let's suppose there's a shared object which depends on libstdc++.so.6.
I'd like to determine its dependencies. Unfortunately,
libstdc++.so.6 exists in more than one place in the filesystem:
maciej at build8s [build8s]:~ > ls -l /opt/csw/{,gcc4/}lib/libstdc++.so.6
lrwxrwxrwx 1 root other 19 May 11 2009
/opt/csw/gcc4/lib/libstdc++.so.6 -> libstdc++.so.6.0.10
lrwxrwxrwx 1 root other 20 Aug 7 11:50
/opt/csw/lib/libstdc++.so.6 -> ./libstdc++.so.6.0.3
How am I supposed to tell which one is the right one? (Without
trussing the running program, of course.) The best idea I have is
looking at the RUNPATH property of the library and assuming that the
first one is the right one. For example, if the RUNPATH was
['/opt/csw/gcc4/lib', '/opt/csw/lib/$ISALIST', '/opt/csw/lib',
'/opt/csw/lib', '/opt/csw/lib/svn'], I would assume that
/opt/csw/gcc4/lib/libstdc++.so.6 is the right one, because
'/opt/csw/gcc4/lib' appears first on the RUNPATH list.
Do you this this is a reliable method?
More information about the maintainers
mailing list