diff options
-rw-r--r-- | pym/portage/util/_dyn_libs/LinkageMapELF.py | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/pym/portage/util/_dyn_libs/LinkageMapELF.py b/pym/portage/util/_dyn_libs/LinkageMapELF.py index c8e9acfe3..05043d708 100644 --- a/pym/portage/util/_dyn_libs/LinkageMapELF.py +++ b/pym/portage/util/_dyn_libs/LinkageMapELF.py @@ -697,14 +697,18 @@ class LinkageMapELF(object): for provider_key in soname_node.providers: provider_objs = self._obj_properties[provider_key][4] for p in provider_objs: - for excluded in exclude_providers: - if not excluded(p): - # This provider is not excluded. It will - # satisfy a consumer of this soname if it - # is in the default ld.so path or the - # consumer's runpath. - relevant_dir_keys.add( - self._path_key(os.path.dirname(p))) + provider_excluded = False + for excluded_provider_isowner in exclude_providers: + if excluded_provider_isowner(p): + provider_excluded = True + break + if not provider_excluded: + # This provider is not excluded. It will + # satisfy a consumer of this soname if it + # is in the default ld.so path or the + # consumer's runpath. + relevant_dir_keys.add( + self._path_key(os.path.dirname(p))) for consumer_key in soname_node.consumers: _arch, _needed, path, _soname, _consumer_objs = \ |