[oe-commits] org.oe.dev classes/insane.bbclass: Handle non-elf files gracefully (again)

freyther commit openembedded-commits at lists.openembedded.org
Thu Dec 27 03:35:01 UTC 2007


classes/insane.bbclass: Handle non-elf files gracefully (again)

Author: freyther at openembedded.org
Branch: org.openembedded.dev
Revision: e3d8733cd7bc11c5dc082c897b4452b8baeca343
ViewMTN: http://monotone.openembedded.org/revision/info/e3d8733cd7bc11c5dc082c897b4452b8baeca343
Files:
1
classes/insane.bbclass
Diffs:

#
# mt diff -r5061900525e1fe151eb61852c42e3faedd7637c8 -re3d8733cd7bc11c5dc082c897b4452b8baeca343
#
# 
# 
# patch "classes/insane.bbclass"
#  from [2fa978333aeeef16366d891ae2f7a9205237d729]
#    to [c58a995d8c8872d685339fc4b7a6b2468a097846]
# 
============================================================
--- classes/insane.bbclass	2fa978333aeeef16366d891ae2f7a9205237d729
+++ classes/insane.bbclass	c58a995d8c8872d685339fc4b7a6b2468a097846
@@ -99,11 +99,10 @@ def package_qa_get_elf(path, bits32):
         ELFDATA2LSB  = 1
         ELFDATA2MSB  = 2
 
-        def my_assert(expectation, result):
+        def my_assert(self, expectation, result):
             if not expectation == result:
-                #print "'%x','%x'" % (ord(expectation), ord(result))
+                #print "'%x','%x' %s" % (ord(expectation), ord(result), self.name)
                 raise Exception("This does not work as expected")
-        my_assert = staticmethod(my_assert)
 
         def __init__(self, name):
             self.name = name
@@ -112,16 +111,16 @@ def package_qa_get_elf(path, bits32):
             self.file = file(self.name, "r")
             self.data = self.file.read(ELFFile.EI_NIDENT+4)
 
-            ELFFile.my_assert(len(self.data), ELFFile.EI_NIDENT+4)
-            ELFFile.my_assert(self.data[0], chr(0x7f) )
-            ELFFile.my_assert(self.data[1], 'E')
-            ELFFile.my_assert(self.data[2], 'L')
-            ELFFile.my_assert(self.data[3], 'F')
+            self.my_assert(len(self.data), ELFFile.EI_NIDENT+4)
+            self.my_assert(self.data[0], chr(0x7f) )
+            self.my_assert(self.data[1], 'E')
+            self.my_assert(self.data[2], 'L')
+            self.my_assert(self.data[3], 'F')
             if bits32 :
-                ELFFile.my_assert(self.data[ELFFile.EI_CLASS], chr(ELFFile.ELFCLASS32))
+                self.my_assert(self.data[ELFFile.EI_CLASS], chr(ELFFile.ELFCLASS32))
             else:
-                ELFFile.my_assert(self.data[ELFFile.EI_CLASS], chr(ELFFile.ELFCLASS64))
-            ELFFile.my_assert(self.data[ELFFile.EI_VERSION], chr(ELFFile.EV_CURRENT) )
+                self.my_assert(self.data[ELFFile.EI_CLASS], chr(ELFFile.ELFCLASS64))
+            self.my_assert(self.data[ELFFile.EI_VERSION], chr(ELFFile.EV_CURRENT) )
 
             self.sex = self.data[ELFFile.EI_DATA]
             if self.sex == chr(ELFFile.ELFDATANONE):
@@ -285,7 +284,10 @@ def package_qa_check_arch(path,name,d):
     (machine, osabi, abiversion, littleendian, bits32) \
         = package_qa_get_machine_dict()[target_os][target_arch]
     elf = package_qa_get_elf(path, bits32)
-    elf.open()
+    try:
+        elf.open()
+    except:
+        return True
 
     # Check the architecture and endiannes of the binary
     if not machine == elf.machine():






More information about the Openembedded-commits mailing list