package.bbclass: fix TypeError in runstrip

* some packages have .ko files which are not elf, without this change
  it fails with TypeError, with this change only runstip fails and
  reports where:
  ERROR: runstrip: ''arm-oe-linux-gnueabi-strip'  '/OE/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/emacs-23.4-r0/package/usr/share/emacs/23.4/etc/tutorials/TUTORIAL.ko'' strip command failed

(From OE-Core rev: a834ab8a6d53cae504fa112a89bab93d726539ec)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Martin Jansa
2012-07-31 04:00:01 +02:00
committed by Richard Purdie
parent 8c7480e3df
commit 5ab3a11149

View File

@@ -291,12 +291,16 @@ def runstrip(file, elftype, d):
os.chmod(file, newmode)
extraflags = ""
# .so and shared library
if ".so" in file and elftype & 8:
extraflags = "--remove-section=.comment --remove-section=.note --strip-unneeded"
# shared or executable:
elif elftype & 8 or elftype & 4:
extraflags = "--remove-section=.comment --remove-section=.note"
# split_and_strip_files is calling this with elf_type None, causing:
# TypeError: unsupported operand type(s) for &: 'NoneType' and 'int'
if elftype:
# .so and shared library
if ".so" in file and elftype & 8:
extraflags = "--remove-section=.comment --remove-section=.note --strip-unneeded"
# shared or executable:
elif elftype & 8 or elftype & 4:
extraflags = "--remove-section=.comment --remove-section=.note"
stripcmd = "'%s' %s '%s'" % (strip, extraflags, file)
bb.debug(1, "runstrip: %s" % stripcmd)