diff options
author | 2011-12-05 20:00:04 +0000 | |
---|---|---|
committer | 2011-12-05 20:01:47 +0000 | |
commit | d69251ac733d1c80650bd5954daf1e92408dbd1d (patch) | |
tree | fe62fe7adeb9c49f25ee9ccc19b42732a1009eae | |
parent | c34671dcc85e10cb2507fc5096d3f9a5ef593cd6 (diff) | |
download | paludis-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.cc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/paludis/elf_linkage_checker.cc b/paludis/elf_linkage_checker.cc index e8318884b..734daece3 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)); |