preserve-libs: check for broken linkmap more
authorZac Medico <zmedico@gentoo.org>
Wed, 18 May 2011 05:27:07 +0000 (22:27 -0700)
committerZac Medico <zmedico@gentoo.org>
Thu, 26 May 2011 03:22:39 +0000 (20:22 -0700)
pym/portage/dbapi/vartree.py

index 6ac161182368789854c4dc95f20c7173dde528db..31e1fa6cc0f23c4d2c0c3f2a0c9c5299d585b376 100644 (file)
@@ -1474,8 +1474,10 @@ class dblink(object):
        def _prune_plib_registry(self, unmerge=False,
                needed=None, preserve_paths=None):
                # remove preserved libraries that don't have any consumers left
-               plib_registry = self.vartree.dbapi._plib_registry
-               if plib_registry:
+               if not (self._linkmap_broken or
+                       self.vartree.dbapi._linkmap is None or
+                       self.vartree.dbapi._plib_registry is None):
+                       plib_registry = self.vartree.dbapi._plib_registry
                        plib_registry.lock()
                        try:
                                plib_registry.load()
@@ -3351,7 +3353,8 @@ class dblink(object):
 
                preserve_paths = set()
                needed = None
-               if not (linkmap is None or plib_registry is None):
+               if not (self._linkmap_broken or linkmap is None or
+                       plib_registry is None):
                        plib_registry.lock()
                        try:
                                plib_registry.load()