> -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of > Mark Hatle > Sent: den 16 april 2018 17:34 > To: [email protected] > 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 <[email protected]> > --- > 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 > [email protected] > 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 -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
