[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#327698: mklibs: Fails if symbols are provided by libs in ./usr/lib



Package: mklibs
Version: 0.1.16
Severity: important
Tags: d-i, patch

In debian-installer we currently have a build failure for s/390 because a 
symbol that is provided by a library in ./usr/lib under the root is said 
to be missing by mklibs in its final iteration even though it is actually 
available. During the iterations the lib is "skipped" with a message "no 
action required".

The attached patch will fix the issue by taking into account the symbols 
provided by such libs when determining which symbols are already provided 
and which are not during the reduction iterations.

It might be cleaner to process these libs in the same way as libs in 
$TEMP/lib, but this patch seems the less invasive solution.

I intend to NMU this patch tomorrow unless someone objects.

--- mklibs-0.1.16.orig/mklibs.py	2005-09-11 17:46:29.137061276 +0200
+++ mklibs-0.1.16/mklibs.py	2005-09-11 17:46:55.934219847 +0200
@@ -368,6 +368,7 @@
 lib_path.extend(lib_rpath)
 
 passnr = 1
+available_libs = []
 previous_pass_unresolved = Set()
 while 1:
     debug(DEBUG_NORMAL, "I: library reduction pass", `passnr`)
@@ -407,9 +408,11 @@
     # doesn't hurt. I guess all archs can live with this.
     needed_symbols.add(("sys_siglist", 1))
 
-    # calculate what symbols are present in small_libs
+    # calculate what symbols are present in small_libs and available_libs
     present_symbols = Set()
-    for lib in small_libs:
+    checked_libs = small_libs
+    checked_libs.extend(available_libs)
+    for lib in checked_libs:
         present_symbols.merge(provided_symbols(lib))
 
     # are we finished?
@@ -479,6 +482,9 @@
         so_file = find_lib(library)
         if root and (re.compile("^" + root).search(so_file)):
             debug(DEBUG_VERBOSE, "no action required for " + so_file)
+            if not so_file in available_libs:
+                debug(DEBUG_VERBOSE, "adding " + so_file + " to available libs")
+                available_libs.append(so_file)
             continue
         so_file_name = os.path.basename(so_file)
         if not so_file:

Attachment: pgpHKIIkzksYZ.pgp
Description: PGP signature


Reply to: