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: 0c263b207a309e9cdf6f55ce72e3cc751041a47c)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f044290f98ea66f2cecfbffd7d392dbc3d986da9)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
Ross Burton
2024-04-30 13:57:16 +00:00
committed by Steve Sakoman
parent ccebd36160
commit 93a9928cd7

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: