[OE-core] SRC_URI computing order

Richard Purdie richard.purdie at linuxfoundation.org
Wed Oct 30 15:15:12 UTC 2013


On Tue, 2013-10-29 at 08:28 +0100, Eric Bénard wrote:
> Hi Khem,
> 
> Le Mon, 28 Oct 2013 20:45:21 -0700,
> Khem Raj <raj.khem at gmail.com> a écrit :
> 
> > On Mon, Oct 28, 2013 at 7:10 AM, Eric Bénard <eric at eukrea.com> wrote:
> > > Hi Richard,
> > >
> > > I saw your patch fixing FILESPATH's and Kergoth's one fixing
> > > PACKAGECONFIG processing order and I think I'm also facing an order
> > > problem when SRC_URI is computed.
> > >
> > > So when building SRC_URI when two layers have bbappend which apply
> > > patches : the SRC_URI seems to be built using an order I fail to
> > > understand somewhere instead of priority or the overrides' order.
> > >
> > > The use case is a System on Module and its custom motherboard :
> > > - meta-fsl-arm :
> > > * linux-imx_xyz.bb :
> > > SRC_URI = "patchgeneric1 ..."
> > >
> > > - meta-som-support :
> > > * conf/machine/mysom.conf
> > >
> > > * linux-imx_xyz.bbappend :
> > > SRC_URI_append_mysom = "patchsom1 patchsom2 ..."
> > >
> > > - meta-custommotherboard (SOM + Cunstom Motherboard) :
> > > * conf/machine/myproduct.conf
> > > MACHINEOVERRIDES_prepend = "mysom:"
> > > include conf/machine/mysom.conf
> > >
> > > * linux-imx_xyz.bbappend :
> > > SRC_URI_append_myproduct = "patchproduct1 patchproduct2 ..."
> > >
> > > in the end I get :
> > > SRC_URI = "patchgeneric1 ... patchsoc1 ... patchproduct1 ...
> > > patchsom1 ..."
> > >
> > > and of course as patchproduct* are supposed to apply on top of
> > > patchsoc* the patch fail to apply.
> > >
> > > I didn't found a way to build SRC_URI in the order I would like (I
> > > tested : changing MACHINEOVERRIDES 's order, changing layers' priority,
> > > changing machine's name to see if that was an alphabetical order ...).
> > >
> > > In the end the only thing which worked was to add an (empty by default)
> > > variable in som's SRC_URI and filling this variables from the
> > > custommotherboard's bbappend.
> > >
> > > Is the behaviour I'm seeing expected or is there something wrong in my
> > > setup ?
> > 
> > what is your OVERRIDES order.
> > 
> "${TARGET_OS}:${TRANSLATED_TARGET_ARCH}:build-${BUILD_OS}:pn-${PN}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:${CLASSOVERRIDE}:forcevariable"
> 
> so it follows the MACHINEOVERRIDES order (and I tried both append and
> prepend to hack MACHINEOVERRIDES without any behaviour change).

I think what Khem is asking is what OVERRIDES expands to?

You mean patchso* and not patchsoc* above, right? Or should patchsom1 be
patchsoc2?

Its hard to follow and it might be easier if you could share a
simplified test case we could reproduce this with. I don't doubt there
is an issue in there but we need a way to reproduce and debug this.

Cheers,

Richard








More information about the Openembedded-core mailing list