[OE-core] [PATCH] kernel-yocto.bbclass: Force do_diffconfig depends to ${PN}

Chris Larson clarson at kergoth.com
Fri Feb 28 21:26:51 UTC 2014


On Thu, Feb 20, 2014 at 10:37 PM, Nathan Rossi <nathan.rossi at xilinx.com>wrote:

> Commit 07e59b5ff659bde6e6a60c4781c0a2deb406c667 added the task
> dependency of 'virtual/kernel:do_kernel_configme' for the do_diffconfig
> task. This dependency is only valid for linux recipes that inherit
> kernel-yocto (e.g. linux-yocto), however due to virtual/kernel being a
> virtual dependency it may not be providing a kernel which inherits
> kernel-yocto in which case the do_kernel_configme task might not exist.
>
> In the case where virtual/kernel is provided by a non kernel-yocto
> recipe an error is thrown in relation to the dependency, e.g.
>
>         ERROR: Task do_diffconfig in linux-yocto-tiny_3.8.bb depends
>         upon non-existent task do_kernel_configme in linux.bb
>
> Changing the dependency to use '${PN}:do_kernel_configme' forces the
> dependency to only depend on the recipe which inherits
> kernel-yocto.bbclass.
>
> Signed-off-by: Nathan Rossi <nathan.rossi at xilinx.com>
>

It looks like any machine which has a kernel-yocto recipe parsed and not
skipped, but whose virtual/kernel is not kernel-yocto, will see this. The
beagleboard machine gets build breaks due to this, for example, if you
include both meta-yocto-bsp and meta-ti in your BBLAYERS.

This is a little weird, both the original implementation and this patch. We
already have an API for adding internal inter-task dependencies, it's
called 'addtask' ;) That said, I think I can see the intent, but there are
a couple of alternatives, and I really don't like either this or the
original version, personally.

I'm guessing that the idea was to add a dependency from diffconfig to
kernel_configme whether or not diffconfig even exists, in order to be able
to support a use case where kernel-yocto is inherited but cml1 is not, but
I'd question the validity of such a use case, personally. I think either we
should consider one of these options:

    1) Programmatically add the dependency with bb.build.addtask based on
the availability of do_diffconfig
    2) Use addtask to express the dependency in linux-yocto.inc, where
do_kernel_configme gets added as a task. Having do_diffconfig depend on
do_kernel_configme for a recipe that doesn't include linux-yocto.inc would
result in breakage anyway unless they explicitly addtask do_kernel_configme
in that recipe.

Thoughts?

Does anyone know if the intent was that kernel-yocto.bbclass would be
useful without cml1?
-- 
Christopher Larson
clarson at kergoth dot com
Founder - BitBake, OpenEmbedded, OpenZaurus
Maintainer - Tslib
Senior Software Engineer, Mentor Graphics
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20140228/e3527b21/attachment-0002.html>


More information about the Openembedded-core mailing list