Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Olof Johansson <olof.johansson@axis.com>
To: openembedded-core@lists.openembedded.org
Cc: Olof Johansson <olofjn@axis.com>
Subject: [PATCH 2/5] package.bbclass: Make use of common is_elf function
Date: Fri,  1 Dec 2017 16:50:21 +0100	[thread overview]
Message-ID: <20171201155024.3002-3-olofjn@axis.com> (raw)
In-Reply-To: <20171201155024.3002-1-olofjn@axis.com>

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@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



  parent reply	other threads:[~2017-12-01 15:59 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-01 15:50 [PATCH 0/5] Improve isELF, gets triggered by ELF anywhere in pathname Olof Johansson
2017-12-01 15:50 ` [PATCH 1/5] lib/oe/package.py: Expose is_elf Olof Johansson
2017-12-04  9:34   ` Olof Johansson
2017-12-01 15:50 ` Olof Johansson [this message]
2017-12-01 15:50 ` [PATCH 3/5] lib/oe/package.py: is_elf: Don't let filename influence filetype Olof Johansson
2017-12-01 15:50 ` [PATCH 4/5] lib/oe/package.py: is_elf: Disallow shell specials to be expanded Olof Johansson
2017-12-01 15:50 ` [PATCH 5/5] lib/oe/package.py: is_elf: Make it less prone to false positives Olof Johansson
2017-12-01 17:43   ` Mark Hatle
2017-12-01 21:13     ` Olof Johansson
2017-12-04 10:00       ` Olof Johansson
2017-12-04 19:22         ` Mark Hatle
2017-12-04 12:36   ` Burton, Ross
2017-12-04 15:30     ` Olof Johansson
2017-12-04 15:33       ` Burton, Ross
2017-12-06 21:38         ` Burton, Ross
2017-12-18 11:06           ` Olof Johansson
2017-12-18 11:28             ` Burton, Ross
2017-12-18 12:00               ` Burton, Ross
2017-12-20 11:05                 ` Olof Johansson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171201155024.3002-3-olofjn@axis.com \
    --to=olof.johansson@axis.com \
    --cc=olofjn@axis.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox