diff options
-rw-r--r-- | pym/portage/util/_dyn_libs/LinkageMapELF.py | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/pym/portage/util/_dyn_libs/LinkageMapELF.py b/pym/portage/util/_dyn_libs/LinkageMapELF.py index 4b23421bb..d4c490cdb 100644 --- a/pym/portage/util/_dyn_libs/LinkageMapELF.py +++ b/pym/portage/util/_dyn_libs/LinkageMapELF.py @@ -481,7 +481,9 @@ class LinkageMapELF(object): def isMasterLink(self, obj): """ - Determine whether an object is a master link. + Determine whether an object is a "master" symlink, which means + that its basename is that same as the beginning part of the + soname and it lacks the soname's version component. @param obj: absolute path to an object @type obj: string (example: '/usr/bin/foo') @@ -492,12 +494,12 @@ class LinkageMapELF(object): """ os = _os_merge - basename = os.path.basename(obj) obj_key = self._obj_key(obj) if obj_key not in self._obj_properties: raise KeyError("%s (%s) not in object list" % (obj_key, obj)) + basename = os.path.basename(obj) soname = self._obj_properties[obj_key][3] - return (len(basename) < len(soname)) + return len(basename) < len(soname) and soname.startswith(basename) def listLibraryObjects(self): """ |