All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH] package.bbclass: Add '-b' option to file call in isELF
@ 2018-04-16 20:49 Peter Kjellerstedt
  2018-04-17 14:20 ` Burton, Ross
  0 siblings, 1 reply; 3+ messages in thread
From: Peter Kjellerstedt @ 2018-04-16 20:49 UTC (permalink / raw)
  To: Mark Hatle, openembedded-core; +Cc: Olof Johansson

> -----Original Message-----
> From: openembedded-core-bounces@lists.openembedded.org
> [mailto:openembedded-core-bounces@lists.openembedded.org] On Behalf Of
> Mark Hatle
> Sent: den 16 april 2018 17:34
> To: openembedded-core@lists.openembedded.org
> Subject: [OE-core] [PATCH] package.bbclass: Add '-b' option to file
> call in isELF
> 
> The isELF function works by running:
> 
>    result = file <pathname>
>    if 'ELF' in result
> 
> By default 'file' will prepend the result with the path name of the file
> that is being checked.  This usually works fine, such as:
> 
> $ file /home/foo/openembedded-core/meta/classes/package.bbclass
> /home/foo/openembedded-core/meta/classes/package.bbclass: Python
> script, ASCII text executable, with very long lines
> 
> However, if the path includes 'ELF', ELF will end up in the result, and then
> the check will return positive.
> 
> $ file /home/ELF/openembedded-core/meta/classes/package.bbclass
> /home/ELF/openembedded-core/meta/classes/package.bbclass: Python
> script, ASCII text executable, with very long lines
> 
> This will then result in the isELF coming back true, and possibly causing the
> checks that use isELF, such as the 'is it already stripped' check, to do the
> incorrect thing.
> 
> Adding the '-b' option to file will result in the path being omitted in the
> result:
> 
> $ file /home/ELF/openembedded-core/meta/classes/package.bbclass
> Python script, ASCII text executable, with very long lines
> 
> Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
> ---
>  meta/classes/package.bbclass | 2 +-
>  meta/lib/oe/package.py       | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/meta/classes/package.bbclass
> b/meta/classes/package.bbclass
> index 9bba021efb..79783071bc 100644
> --- a/meta/classes/package.bbclass
> +++ b/meta/classes/package.bbclass
> @@ -918,7 +918,7 @@ python split_and_strip_files () {
>      # 16 - kernel module
>      def isELF(path):
>          type = 0
> -        ret, result = oe.utils.getstatusoutput("file '%s'" % path)
> +        ret, result = oe.utils.getstatusoutput("file -b '%s'" % path)
> 
>          if ret:
>              msg = "split_and_strip_files: 'file %s' failed" % path
> diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py
> index 1e5c3aa8e1..599fca60f8 100644
> --- a/meta/lib/oe/package.py
> +++ b/meta/lib/oe/package.py
> @@ -73,7 +73,7 @@ def strip_execs(pn, dstdir, strip_cmd, libdir,
> base_libdir, qa_already_stripped=
>      def is_elf(path):
>          exec_type = 0
>          ret, result = oe.utils.getstatusoutput(
> -            "file \"%s\"" % path.replace("\"", "\\\""))
> +            "file -b \"%s\"" % path.replace("\"", "\\\""))
> 
>          if ret:
>              bb.error("split_and_strip_files: 'file %s' failed" % path)
> --
> 2.16.0.rc2
> 
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core

There was a discussion last year at the beginning of December related 
to this, triggered by a patch series to improve isELF that Olof Johansson 
sent:

http://lists.openembedded.org/pipermail/openembedded-core/2017-December/145160.html

It also included a patch that added -b to the file call:

http://lists.openembedded.org/pipermail/openembedded-core/2017-December/145158.html

However, the discussion then turned to replace the isELF implementation 
with a new one that Ross Burton was working on:

http://lists.openembedded.org/pipermail/openembedded-core/2017-December/145205.html

Whatever became of that? Is that still in progress?

//Peter



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] package.bbclass: Add '-b' option to file call in isELF
  2018-04-16 20:49 [PATCH] package.bbclass: Add '-b' option to file call in isELF Peter Kjellerstedt
@ 2018-04-17 14:20 ` Burton, Ross
  0 siblings, 0 replies; 3+ messages in thread
From: Burton, Ross @ 2018-04-17 14:20 UTC (permalink / raw)
  To: Peter Kjellerstedt; +Cc: Olof Johansson, openembedded-core

On 16 April 2018 at 21:49, Peter Kjellerstedt
<peter.kjellerstedt@axis.com> wrote:
> There was a discussion last year at the beginning of December related
> to this, triggered by a patch series to improve isELF that Olof Johansson
> sent:
>
> http://lists.openembedded.org/pipermail/openembedded-core/2017-December/145160.html
>
> It also included a patch that added -b to the file call:
>
> http://lists.openembedded.org/pipermail/openembedded-core/2017-December/145158.html

Whoops, must have missed that.  Sorry about this, this is now in my sumo queue.

> However, the discussion then turned to replace the isELF implementation
> with a new one that Ross Burton was working on:
>
> http://lists.openembedded.org/pipermail/openembedded-core/2017-December/145205.html
>
> Whatever became of that? Is that still in progress?

Yes, it's still in progress.  I was hacking on it a bit more thing
morning in fact, as a proof-of-concept to extract the linkage from a
binary during QA and warn if a 32-bit executable is linking to the
non-largefile functions.  Obviously its 2.6 material now but I hope
I'll get around to finishing it off.

Ross


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH] package.bbclass: Add '-b' option to file call in isELF
@ 2018-04-16 15:34 Mark Hatle
  0 siblings, 0 replies; 3+ messages in thread
From: Mark Hatle @ 2018-04-16 15:34 UTC (permalink / raw)
  To: openembedded-core

The isELF function works by running:

   result = file <pathname>
   if 'ELF' in result

By default 'file' will prepend the result with the path name of the file
that is being checked.  This usually works fine, such as:

$ file /home/foo/openembedded-core/meta/classes/package.bbclass
/home/foo/openembedded-core/meta/classes/package.bbclass: Python script, ASCII text executable, with very long lines

However, if the path includes 'ELF', ELF will end up in the result, and then
the check will return positive.

$ file /home/ELF/openembedded-core/meta/classes/package.bbclass
/home/ELF/openembedded-core/meta/classes/package.bbclass: Python script, ASCII text executable, with very long lines

This will then result in the isELF coming back true, and possibly causing the
checks that use isELF, such as the 'is it already stripped' check, to do the
incorrect thing.

Adding the '-b' option to file will result in the path being omitted in the
result:

$ file /home/ELF/openembedded-core/meta/classes/package.bbclass
Python script, ASCII text executable, with very long lines

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
---
 meta/classes/package.bbclass | 2 +-
 meta/lib/oe/package.py       | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 9bba021efb..79783071bc 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -918,7 +918,7 @@ python split_and_strip_files () {
     # 16 - kernel module
     def isELF(path):
         type = 0
-        ret, result = oe.utils.getstatusoutput("file '%s'" % path)
+        ret, result = oe.utils.getstatusoutput("file -b '%s'" % path)
 
         if ret:
             msg = "split_and_strip_files: 'file %s' failed" % path
diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py
index 1e5c3aa8e1..599fca60f8 100644
--- a/meta/lib/oe/package.py
+++ b/meta/lib/oe/package.py
@@ -73,7 +73,7 @@ def strip_execs(pn, dstdir, strip_cmd, libdir, base_libdir, qa_already_stripped=
     def is_elf(path):
         exec_type = 0
         ret, result = oe.utils.getstatusoutput(
-            "file \"%s\"" % path.replace("\"", "\\\""))
+            "file -b \"%s\"" % path.replace("\"", "\\\""))
 
         if ret:
             bb.error("split_and_strip_files: 'file %s' failed" % path)
-- 
2.16.0.rc2



^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-04-17 14:20 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-16 20:49 [PATCH] package.bbclass: Add '-b' option to file call in isELF Peter Kjellerstedt
2018-04-17 14:20 ` Burton, Ross
  -- strict thread matches above, loose matches on Subject: below --
2018-04-16 15:34 Mark Hatle

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.