summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOtavio Salvador <otavio@ossystems.com.br>2018-07-02 20:24:11 -0300
committerOtavio Salvador <otavio@ossystems.com.br>2018-07-03 15:09:15 -0300
commitb0cd2fe43a8685809f3dc18dc7851192398986ff (patch)
tree63eecbee5d83a762afa9250ee4d059bdff60c890
parent96db4d8205783f6f8e5c09a281dd9885151c70cc (diff)
downloadmeta-freescale-b0cd2fe43a8685809f3dc18dc7851192398986ff.tar.gz
machine-overrides-extender.bbclass: Postpone overrides processing
We need to keep a reference to the original MACHINEOVERRIDES value so it can be reprocessed as need. This allow the compatibility with existing BSP's while fixing the complex multilib interactions. I'd like to record that Richard Purdie was key to solve this issue. Its implications were beyond my understanding until he guided me and provided a prototype fix. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> (cherry picked from commit d227cc133101ecbce25fc4f775863107537f883d)
-rw-r--r--classes/machine-overrides-extender.bbclass21
1 files changed, 12 insertions, 9 deletions
diff --git a/classes/machine-overrides-extender.bbclass b/classes/machine-overrides-extender.bbclass
index 6c2ec32e1..7aaae8587 100644
--- a/classes/machine-overrides-extender.bbclass
+++ b/classes/machine-overrides-extender.bbclass
@@ -12,14 +12,10 @@
12# 12#
13# MACHINEOVERRIDES_EXTENDER_FILTER_OUT_override = "group1 group2" 13# MACHINEOVERRIDES_EXTENDER_FILTER_OUT_override = "group1 group2"
14# 14#
15# Copyright 2016-2017 (C) O.S. Systems Software LTDA. 15# Copyright 2016-2018 (C) O.S. Systems Software LTDA.
16 16
17def machine_overrides_extender(d): 17def machine_overrides_extender(d):
18 variant = d.getVar("BBEXTENDVARIANT") 18 machine_overrides = (d.getVar('PRISTINE_MACHINEOVERRIDES', True) or '').split(':')
19 if variant:
20 return
21
22 machine_overrides = (d.getVar('MACHINEOVERRIDES', True) or '').split(':')
23 19
24 # Gather the list of overrides to filter out 20 # Gather the list of overrides to filter out
25 machine_overrides_filter_out = [] 21 machine_overrides_filter_out = []
@@ -43,11 +39,18 @@ def machine_overrides_extender(d):
43 index = machine_overrides.index(override) 39 index = machine_overrides.index(override)
44 for e in extender: 40 for e in extender:
45 machine_overrides.insert(index, e) 41 machine_overrides.insert(index, e)
46 d.setVar('MACHINEOVERRIDES', ':'.join(machine_overrides)) 42
43 return ':'.join(machine_overrides)
47 44
48python machine_overrides_extender_handler() { 45python machine_overrides_extender_handler() {
49 machine_overrides_extender(e.data) 46 # Ideally we'd use a separate variable name for this however
47 # historically NXP BSPs used this. We save it to a known good name
48 # so we can reprocess OVERRIDES if/as/when needed.
49 d.renameVar("MACHINEOVERRIDES", "PRISTINE_MACHINEOVERRIDES")
50
51 # Now we add our own function intercept in instead
52 d.setVar("MACHINEOVERRIDES", "${@machine_overrides_extender(d)}:")
50} 53}
51 54
52machine_overrides_extender_handler[eventmask] = "bb.event.RecipePreFinalise" 55machine_overrides_extender_handler[eventmask] = "bb.event.ConfigParsed"
53addhandler machine_overrides_extender_handler 56addhandler machine_overrides_extender_handler