aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar David Leverton <levertond@googlemail.com> 2011-12-05 20:00:04 +0000
committerAvatar David Leverton <levertond@googlemail.com> 2011-12-05 20:01:47 +0000
commitd69251ac733d1c80650bd5954daf1e92408dbd1d (patch)
treefe62fe7adeb9c49f25ee9ccc19b42732a1009eae
parentc34671dcc85e10cb2507fc5096d3f9a5ef593cd6 (diff)
downloadpaludis-d69251ac733d1c80650bd5954daf1e92408dbd1d.tar.gz
paludis-d69251ac733d1c80650bd5954daf1e92408dbd1d.tar.xz
Handle binaries that link to libraries by full path
Example: # ldd /usr/bin/wimenu [...] /usr/lib64/libixp.so (0x0000028b1db65000)
-rw-r--r--paludis/elf_linkage_checker.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/paludis/elf_linkage_checker.cc b/paludis/elf_linkage_checker.cc
index e831888..734daec 100644
--- a/paludis/elf_linkage_checker.cc
+++ b/paludis/elf_linkage_checker.cc
@@ -220,6 +220,7 @@ Imp<ElfLinkageChecker>::handle_library(const FSPath & file, const ElfArchitectur
seen.insert(std::make_pair(file, arch));
std::pair<Symlinks::const_iterator, Symlinks::const_iterator> range(symlinks.equal_range(file));
libraries[arch].push_back(file.basename());
+ libraries[arch].push_back(stringify(file.strip_leading(root)));
if (range.first != range.second)
{
@@ -244,6 +245,7 @@ ElfLinkageChecker::note_symlink(const FSPath & link, const FSPath & target)
Log::get_instance()->message("broken_linkage_finder.note_symlink", ll_debug, lc_context)
<< "'" << link << "' is a symlink to known library '" << target << "'";
_imp->libraries[it->second].push_back(link.basename());
+ _imp->libraries[it->second].push_back(stringify(link.strip_leading(_imp->root)));
}
else
_imp->symlinks.insert(std::make_pair(target, link));