summaryrefslogtreecommitdiffstats
path: root/meta/classes/insane.bbclass
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2016-07-22 15:25:00 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-07-26 08:56:25 +0100
commite693f2e641afa88dfb53371482e9c5be8dc8eb92 (patch)
tree6cdff15893f92aa60019a0d0e16e8400bac32768 /meta/classes/insane.bbclass
parent1393b23f512b42d0dc547677f3fc3a88f3864a31 (diff)
downloadpoky-e693f2e641afa88dfb53371482e9c5be8dc8eb92.tar.gz
insane: Add mechanism to extend QA machine information from BSP layer
In order to add a new architecture or sub-architecture to OE, you currently need to tweak the table in insane.bbclass. This adds a mechanism so this can be done from a BSP layer. It needs a function definition which needs a class file but can then be done with something like: def my_testfunc(machdata, d): machdata["testmachine"] = { "test64": ( 8, 0, 0, False, 32), "testel": ( 8, 0, 0, True, 32), } return machdata PACKAGEQA_EXTRA_MACHDEFFUNCS = "my_testfunc" [YOCTO #8554] (From OE-Core rev: c57550c9cca598315ba4408e44b138cecc22b8a0) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/insane.bbclass')
-rw-r--r--meta/classes/insane.bbclass16
1 files changed, 13 insertions, 3 deletions
diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index 9b2337cdbf..98381c20ee 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -54,8 +54,8 @@ UNKNOWN_CONFIGURE_WHITELIST ?= "--enable-nls --disable-nls --disable-silent-rule
54# feel free to add and correct. 54# feel free to add and correct.
55# 55#
56# TARGET_OS TARGET_ARCH MACHINE, OSABI, ABIVERSION, Little Endian, 32bit? 56# TARGET_OS TARGET_ARCH MACHINE, OSABI, ABIVERSION, Little Endian, 32bit?
57def package_qa_get_machine_dict(): 57def package_qa_get_machine_dict(d):
58 return { 58 machdata = {
59 "darwin9" : { 59 "darwin9" : {
60 "arm" : (40, 0, 0, True, 32), 60 "arm" : (40, 0, 0, True, 32),
61 }, 61 },
@@ -168,6 +168,16 @@ def package_qa_get_machine_dict():
168 }, 168 },
169 } 169 }
170 170
171 # Add in any extra user supplied data which may come from a BSP layer, removing the
172 # need to always change this class directly
173 extra_machdata = (d.getVar("PACKAGEQA_EXTRA_MACHDEFFUNCS", True) or "").split()
174 for m in extra_machdata:
175 call = m + "(machdata, d)"
176 locs = { "machdata" : machdata, "d" : d}
177 machdata = bb.utils.better_eval(call, locs)
178
179 return machdata
180
171 181
172def package_qa_clean_path(path,d): 182def package_qa_clean_path(path,d):
173 """ Remove the common prefix from the path. In this case it is the TMPDIR""" 183 """ Remove the common prefix from the path. In this case it is the TMPDIR"""
@@ -519,7 +529,7 @@ def package_qa_check_arch(path,name,d, elf, messages):
519 529
520 #if this will throw an exception, then fix the dict above 530 #if this will throw an exception, then fix the dict above
521 (machine, osabi, abiversion, littleendian, bits) \ 531 (machine, osabi, abiversion, littleendian, bits) \
522 = package_qa_get_machine_dict()[target_os][target_arch] 532 = package_qa_get_machine_dict(d)[target_os][target_arch]
523 533
524 # Check the architecture and endiannes of the binary 534 # Check the architecture and endiannes of the binary
525 if not ((machine == elf.machine()) or \ 535 if not ((machine == elf.machine()) or \