[poky] New warning

Gary Thomas gary at mlbassoc.com
Fri Jun 22 04:49:55 PDT 2012


On 2012-06-22 03:44, Paul Eggleton wrote:
> On Wednesday 20 June 2012 16:51:20 Gary Thomas wrote:
>> On 2012-06-20 15:55, Khem Raj wrote:
>>> On Wed, Jun 20, 2012 at 12:12 PM, Gary Thomas<gary at mlbassoc.com>   wrote:
>>>> This happens when I have two intertwined layers - I have a recipe in
>>>> layer1
>>>> which references a file satisfied only by layer2.
>>>
>>> why not move the reference from layer1 to layer2 as well ?
>>
>> Layer1 holds the recipe and I find it more informative to have the
>> reference there - that way the .bbappends in layer2 _must_ define
>> it and the dependency is obvious since the recipe will fail without
>> this file being specified.
>>
>> My use case is layer1 has a generic kernel recipe and layer2 (BSP)
>> has a platform specific patch for that kernel.  I have other use
>> cases, but this is indicative of how I view the layering.
>
> Well, that's not unreasonable I suppose. However I've just tested a trivial
> example of cross-layer file references here and it does not produce a warning.
> In any case, the code that does the checksums uses the same code as do_fetch
> when it locates the files, so I'm a bit puzzled as to how it would not be able
> to find the file in the first instance and it would when it came to fetch time.
>
> FWIW, Andrea and I figured out that his reported case was caused by some
> recipes that only provided a file for specific machines which did not include
> the current MACHINE, but the recipes were not marked with COMPATIBLE_MACHINE,
> so the warning there was legitimate. Gary, is it possible something similar is
> happening for your layer structure? If not, can you provide some more
> information that might help me reproduce the warning?

I see now what's causing the warning, but I don't see a good way to fix it.

I have my own DISTRO, similar to meta-yocto, plus a number of BSP layers.  Only
one BSP layer will be selected in bblayers.conf.

My meta tree looks something like this:
   /local/poky-multi/
     meta/
     meta-yocto/
     meta-ti/
     meta-MYDISTRO/
     meta-BSPa/
     meta-BSPb/
     ...
     meta-BSPn/
A typical build will have this for bblayers.conf:
   BBLAYERS = " \
     /local/poky-multi/meta \
     /local/poky-multi/meta-MYDISTRO \
     /local/poky-multi/meta-BSPf \
     /local/poky-multi/meta-ti \
   "

The problem is that my generic layer1 has a main recipe which is used by only
a few of the BSP layers (layerBSPa, layerBSPb, etc).  For example, if my configuration
selects meta-BSPf, that BSP may not need to use the recipe in question, but it's
still in meta-MYDISTRO.  More concretely, meta-MYDISTRO defines a recipe 'fpga-tool'
which needs BSP specific setup files like this:
   % find /local/poky-multi -name "fpga-tools*.bb*"
   /local/poky-multi/meta-MYDISTRO/packages/fpga/fpga-tools_0.0.bb
   /local/poky-multi/meta-BSPc/packages/fpga-tools_0.0.bbappend
   /local/poky-multi/meta-BSPd/packages/fpga-tools_0.0.bbappend
Notice that there is no fpga-tools setup in meta-BSPa.  If I'm building for
BSPa, I'll get this warning:
   WARNING: Unable to get checksum for fpga-tool SRC_URI entry fpga_gpio_layout.h: file could not be found
   WARNING: Unable to get checksum for fpga-tool SRC_URI entry video_mux.vme: file could not be found

I can see how to fix this warning by defining those files with dummy versions in meta-MYDISTRO

It gets more complicated as my kernel recipe (in meta-MYDISTRO) references files like
   SRC_URI += "file://${MACHINE}.patch"
I don't see any way to define a dummy version of this.

Is this clear now?  Any ideas how to clean it up?

Thanks for any ideas

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------



More information about the poky mailing list