insane: handle dangling symlinks in the libdir QA check

The "libdir" QA check tries to open every file it finds as an ELF.  If
it finds a dangling symlink that looks like a library by the filename it
will try to open it and fail with FileNotFoundError error.  As this
dangling symlink probably points to a real file, silently absorb the
error.

[ YOCTO #13949 ]

(From OE-Core rev: f044290f98ea66f2cecfbffd7d392dbc3d986da9)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton
2024-04-30 13:57:16 +00:00
committed by Richard Purdie
parent 221806f507
commit 3c3b0f7be4

View File

@@ -298,7 +298,7 @@ def package_qa_check_libdir(d):
try:
elf.open()
messages.append("%s: found library in wrong location: %s" % (package, rel_path))
except (oe.qa.NotELFFileError):
except (oe.qa.NotELFFileError, FileNotFoundError):
pass
if exec_re.match(rel_path):
if libdir not in rel_path and libexecdir not in rel_path:
@@ -307,7 +307,7 @@ def package_qa_check_libdir(d):
try:
elf.open()
messages.append("%s: found library in wrong location: %s" % (package, rel_path))
except (oe.qa.NotELFFileError):
except (oe.qa.NotELFFileError, FileNotFoundError):
pass
if messages: