summaryrefslogtreecommitdiffstats
path: root/meta/lib
diff options
context:
space:
mode:
Diffstat (limited to 'meta/lib')
-rw-r--r--meta/lib/oe/qa.py21
1 files changed, 17 insertions, 4 deletions
diff --git a/meta/lib/oe/qa.py b/meta/lib/oe/qa.py
index 01813931bb..7adf4d03ae 100644
--- a/meta/lib/oe/qa.py
+++ b/meta/lib/oe/qa.py
@@ -25,9 +25,9 @@ class ELFFile:
25 #print "'%x','%x' %s" % (ord(expectation), ord(result), self.name) 25 #print "'%x','%x' %s" % (ord(expectation), ord(result), self.name)
26 raise Exception("This does not work as expected") 26 raise Exception("This does not work as expected")
27 27
28 def __init__(self, name, bits32): 28 def __init__(self, name, bits = 0):
29 self.name = name 29 self.name = name
30 self.bits32 = bits32 30 self.bits = bits
31 31
32 def open(self): 32 def open(self):
33 self.file = file(self.name, "r") 33 self.file = file(self.name, "r")
@@ -38,10 +38,20 @@ class ELFFile:
38 self.my_assert(self.data[1], 'E') 38 self.my_assert(self.data[1], 'E')
39 self.my_assert(self.data[2], 'L') 39 self.my_assert(self.data[2], 'L')
40 self.my_assert(self.data[3], 'F') 40 self.my_assert(self.data[3], 'F')
41 if self.bits32 : 41 if self.bits == 0:
42 if self.data[ELFFile.EI_CLASS] == chr(ELFFile.ELFCLASS32):
43 self.bits == 32
44 elif self.data[ELFFile.EI_CLASS] == chr(ELFFile.ELFCLASS64):
45 self.bits == 64
46 else:
47 # Not 32-bit or 64.. lets assert
48 raise Exception("ELF but not 32 or 64 bit.")
49 elif self.bits == 32:
42 self.my_assert(self.data[ELFFile.EI_CLASS], chr(ELFFile.ELFCLASS32)) 50 self.my_assert(self.data[ELFFile.EI_CLASS], chr(ELFFile.ELFCLASS32))
43 else: 51 elif self.bits == 64:
44 self.my_assert(self.data[ELFFile.EI_CLASS], chr(ELFFile.ELFCLASS64)) 52 self.my_assert(self.data[ELFFile.EI_CLASS], chr(ELFFile.ELFCLASS64))
53 else:
54 raise Exception("Must specify unknown, 32 or 64 bit size.")
45 self.my_assert(self.data[ELFFile.EI_VERSION], chr(ELFFile.EV_CURRENT) ) 55 self.my_assert(self.data[ELFFile.EI_VERSION], chr(ELFFile.EV_CURRENT) )
46 56
47 self.sex = self.data[ELFFile.EI_DATA] 57 self.sex = self.data[ELFFile.EI_DATA]
@@ -60,6 +70,9 @@ class ELFFile:
60 def abiVersion(self): 70 def abiVersion(self):
61 return ord(self.data[ELFFile.EI_ABIVERSION]) 71 return ord(self.data[ELFFile.EI_ABIVERSION])
62 72
73 def abiSize(self):
74 return self.bits
75
63 def isLittleEndian(self): 76 def isLittleEndian(self):
64 return self.sex == "<" 77 return self.sex == "<"
65 78