[OE-core] [PATCH 2/5] package.bbclass: Make use of common is_elf function
Olof Johansson
olof.johansson at axis.com
Fri Dec 1 15:50:21 UTC 2017
The isELF and is_elf function share a common ancestry, but have
diverged. Let's use the implementation from oe.package.
Signed-off-by: Olof Johansson <olofjn at axis.com>
---
meta/classes/package.bbclass | 40 +++++++++-------------------------------
1 file changed, 9 insertions(+), 31 deletions(-)
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 2053d46395..f65596126d 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -857,6 +857,12 @@ python fixup_perms () {
python split_and_strip_files () {
import stat, errno
+ import oe.package
+
+ def is_elf(path):
+ return oe.package.is_elf(
+ path, lambda msg: package_qa_handle_error("split-strip", msg, d)
+ )
dvar = d.getVar('PKGD')
pn = d.getVar('PN')
@@ -892,34 +898,6 @@ python split_and_strip_files () {
sourcefile = d.expand("${WORKDIR}/debugsources.list")
bb.utils.remove(sourcefile)
- # Return type (bits):
- # 0 - not elf
- # 1 - ELF
- # 2 - stripped
- # 4 - executable
- # 8 - shared library
- # 16 - kernel module
- def isELF(path):
- type = 0
- ret, result = oe.utils.getstatusoutput("file \"%s\"" % path.replace("\"", "\\\""))
-
- if ret:
- msg = "split_and_strip_files: 'file %s' failed" % path
- package_qa_handle_error("split-strip", msg, d)
- return type
-
- # Not stripped
- if "ELF" in result:
- type |= 1
- if "not stripped" not in result:
- type |= 2
- if "executable" in result:
- type |= 4
- if "shared" in result:
- type |= 8
- return type
-
-
#
# First lets figure out all of the files we may have to process ... do this only once!
#
@@ -961,14 +939,14 @@ python split_and_strip_files () {
# If it's a symlink, and points to an ELF file, we capture the readlink target
if cpath.islink(file):
target = os.readlink(file)
- if isELF(ltarget):
- #bb.note("Sym: %s (%d)" % (ltarget, isELF(ltarget)))
+ if is_elf(ltarget):
+ #bb.note("Sym: %s (%d)" % (ltarget, is_elf(ltarget)))
symlinks[file] = target
continue
# It's a file (or hardlink), not a link
# ...but is it ELF, and is it already stripped?
- elf_file = isELF(file)
+ elf_file = is_elf(file)
if elf_file & 1:
if elf_file & 2:
if 'already-stripped' in (d.getVar('INSANE_SKIP_' + pn) or "").split():
--
2.11.0
More information about the Openembedded-core
mailing list