This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
soname vs. glibc-2.1.92/scripts/test-installation.pl
- To: libc-alpha at sourceware dot cygnus dot com
- Subject: soname vs. glibc-2.1.92/scripts/test-installation.pl
- From: "Adam J. Richter" <adam at yggdrasil dot com>
- Date: Fri, 25 Aug 2000 00:31:30 -0700
I have not studied the code involved enough to be sure, but
I think that glibc-2.1.92/scripts/test-installation.pl does not
work with libraries that have a soname different from their file names.
I stumbled across this problem when test-installation.pl attempted
to link a test program with -ldb and looked for libdb.so in the
output of ldd'ing that program. The problem was that libdb.so was
built as libdb-3.1.so, and libdb.so was just a symlink, so it
presumably was built with the soname libdb-3.1.so (I am not quite
sure how to extract this from a .so, but turns up when I run strings
on the library).
For the moment, I have kludged our local test-installation.pl
with the patch below. I think the correction solution is for
test-installation.pl to scan ldd's output for the soname's of the
libraries rather than the names actually specified with "-l".
Adam J. Richter __ ______________ 4880 Stevens Creek Blvd, Suite 104
adam@yggdrasil.com \ / San Jose, California 95129-1034
+1 408 261-6630 | g g d r a s i l United States of America
fax +1 408 261-6631 "Free Software For The Rest Of Us."
----------------------------CUT HERE-----------------------------------
I include this kludge for illustration. It is not the fix that I
would recommend.
Index: lib/glibc/scripts/test-installation.pl
===================================================================
RCS file: /usr/src.repository/repository/lib/glibc/scripts/test-installation.pl,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 test-installation.pl
--- lib/glibc/scripts/test-installation.pl 2000/07/11 22:41:25 1.1.1.1
+++ lib/glibc/scripts/test-installation.pl 2000/08/25 07:10:35
@@ -161,6 +161,9 @@
($name, $version1, $version2) =
/^\s*lib(\w*)\.so\.([0-9\.]*)\s*=>.*\.so\.([0-9\.]*)/;
$found{$name} = 1;
+ if ($name =~ 'db-3.1') {
+ $found{'db'} = 1;
+ }
if ($versions{$name} ne $version1 || $version1 ne $version2) {
print "Library lib$name is not correctly installed.\n";
print "Please check your installation!\n";