From: Otavio Salvador Date: Mon, 2 Jul 2018 23:24:11 +0000 (-0300) Subject: machine-overrides-extender.bbclass: Postpone overrides processing X-Git-Url: https://code.ossystems.io/gitweb?a=commitdiff_plain;h=d227cc133101ecbce25fc4f775863107537f883d;p=meta-freescale.git 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 --- diff --git a/classes/machine-overrides-extender.bbclass b/classes/machine-overrides-extender.bbclass index 6c2ec32e..7aaae858 100644 --- a/classes/machine-overrides-extender.bbclass +++ b/classes/machine-overrides-extender.bbclass @@ -12,14 +12,10 @@ # # MACHINEOVERRIDES_EXTENDER_FILTER_OUT_override = "group1 group2" # -# Copyright 2016-2017 (C) O.S. Systems Software LTDA. +# Copyright 2016-2018 (C) O.S. Systems Software LTDA. def machine_overrides_extender(d): - variant = d.getVar("BBEXTENDVARIANT") - if variant: - return - - machine_overrides = (d.getVar('MACHINEOVERRIDES', True) or '').split(':') + machine_overrides = (d.getVar('PRISTINE_MACHINEOVERRIDES', True) or '').split(':') # Gather the list of overrides to filter out machine_overrides_filter_out = [] @@ -43,11 +39,18 @@ def machine_overrides_extender(d): index = machine_overrides.index(override) for e in extender: machine_overrides.insert(index, e) - d.setVar('MACHINEOVERRIDES', ':'.join(machine_overrides)) + + return ':'.join(machine_overrides) python machine_overrides_extender_handler() { - machine_overrides_extender(e.data) + # Ideally we'd use a separate variable name for this however + # historically NXP BSPs used this. We save it to a known good name + # so we can reprocess OVERRIDES if/as/when needed. + d.renameVar("MACHINEOVERRIDES", "PRISTINE_MACHINEOVERRIDES") + + # Now we add our own function intercept in instead + d.setVar("MACHINEOVERRIDES", "${@machine_overrides_extender(d)}:") } -machine_overrides_extender_handler[eventmask] = "bb.event.RecipePreFinalise" +machine_overrides_extender_handler[eventmask] = "bb.event.ConfigParsed" addhandler machine_overrides_extender_handler