From: Zac Medico <zmedico@gentoo.org>
Date: Wed, 18 May 2011 05:27:07 +0000 (-0700)
Subject: preserve-libs: check for broken linkmap more
X-Git-Tag: v2.1.9.50~76
X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=b9f024495f2d15590a9e268f5ec5cdcd89d256ec;p=portage.git

preserve-libs: check for broken linkmap more
---

diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py
index 6ac161182..31e1fa6cc 100644
--- a/pym/portage/dbapi/vartree.py
+++ b/pym/portage/dbapi/vartree.py
@@ -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()