summaryrefslogtreecommitdiffstats
path: root/meta/classes/insane.bbclass
diff options
context:
space:
mode:
authorJoshua Lock <josh@linux.intel.com>2010-05-05 16:17:07 +0100
committerJoshua Lock <josh@linux.intel.com>2010-05-06 12:53:16 +0100
commite7fa3529f32f4037fe122699e0d7f3789a871834 (patch)
treed5a8d407a5b0ac84a6a69f5aaff76e114d563da6 /meta/classes/insane.bbclass
parentac023d775b651c9b1e28a7a725e72949fe54ad47 (diff)
downloadpoky-e7fa3529f32f4037fe122699e0d7f3789a871834.tar.gz
Update classes to use lib/oe
Adapt modifications from upstream to make Poky classes use lib/oe for the common Python functionality. Signed-off-by: Joshua Lock <josh@linux.intel.com>
Diffstat (limited to 'meta/classes/insane.bbclass')
-rw-r--r--meta/classes/insane.bbclass81
1 files changed, 0 insertions, 81 deletions
diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index d8cc679283..6d82e4df88 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -75,87 +75,6 @@ def package_qa_get_machine_dict():
75 75
76 } 76 }
77 77
78# factory for a class, embedded in a method
79def package_qa_get_elf(path, bits32):
80 class ELFFile:
81 EI_NIDENT = 16
82
83 EI_CLASS = 4
84 EI_DATA = 5
85 EI_VERSION = 6
86 EI_OSABI = 7
87 EI_ABIVERSION = 8
88
89 # possible values for EI_CLASS
90 ELFCLASSNONE = 0
91 ELFCLASS32 = 1
92 ELFCLASS64 = 2
93
94 # possible value for EI_VERSION
95 EV_CURRENT = 1
96
97 # possible values for EI_DATA
98 ELFDATANONE = 0
99 ELFDATA2LSB = 1
100 ELFDATA2MSB = 2
101
102 def my_assert(self, expectation, result):
103 if not expectation == result:
104 #print "'%x','%x' %s" % (ord(expectation), ord(result), self.name)
105 raise Exception("This does not work as expected")
106
107 def __init__(self, name):
108 self.name = name
109
110 def open(self):
111 self.file = file(self.name, "r")
112 self.data = self.file.read(ELFFile.EI_NIDENT+4)
113
114 self.my_assert(len(self.data), ELFFile.EI_NIDENT+4)
115 self.my_assert(self.data[0], chr(0x7f) )
116 self.my_assert(self.data[1], 'E')
117 self.my_assert(self.data[2], 'L')
118 self.my_assert(self.data[3], 'F')
119 if bits32 :
120 self.my_assert(self.data[ELFFile.EI_CLASS], chr(ELFFile.ELFCLASS32))
121 else:
122 self.my_assert(self.data[ELFFile.EI_CLASS], chr(ELFFile.ELFCLASS64))
123 self.my_assert(self.data[ELFFile.EI_VERSION], chr(ELFFile.EV_CURRENT) )
124
125 self.sex = self.data[ELFFile.EI_DATA]
126 if self.sex == chr(ELFFile.ELFDATANONE):
127 raise Exception("self.sex == ELFDATANONE")
128 elif self.sex == chr(ELFFile.ELFDATA2LSB):
129 self.sex = "<"
130 elif self.sex == chr(ELFFile.ELFDATA2MSB):
131 self.sex = ">"
132 else:
133 raise Exception("Unknown self.sex")
134
135 def osAbi(self):
136 return ord(self.data[ELFFile.EI_OSABI])
137
138 def abiVersion(self):
139 return ord(self.data[ELFFile.EI_ABIVERSION])
140
141 def isLittleEndian(self):
142 return self.sex == "<"
143
144 def isBigEngian(self):
145 return self.sex == ">"
146
147 def machine(self):
148 """
149 We know the sex stored in self.sex and we
150 know the position
151 """
152 import struct
153 (a,) = struct.unpack(self.sex+"H", self.data[18:20])
154 return a
155
156 return ELFFile(path)
157
158
159# Known Error classes 78# Known Error classes
160# 0 - non dev contains .so 79# 0 - non dev contains .so
161# 1 - package contains a dangerous RPATH 80# 1 - package contains a dangerous RPATH