[poky] New warning
Paul Eggleton
paul.eggleton at linux.intel.com
Fri Jun 22 06:01:39 PDT 2012
On Friday 22 June 2012 05:49:55 Gary Thomas wrote:
> 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
I guess if I were doing it I would not make the BSP layers depend upon the
distro layer, as Tomas was suggesting. In any case though I suspect the best
way to handle this is to use COMPATIBLE_MACHINE which you set to some invalid
value in your distro layer recipe and then append to that value with the
actual MACHINE in the bbappend in each BSP, e.g.
meta-MYDISTRO recipes/fpga/fpga-tools_0.0.bb:
...
COMPATIBLE_MACHINE = "not-valid"
...
meta-BSPc recipes/fpga/fpga-tools_0.0.bbappend:
...
COMPATIBLE_MACHINE .= "|machinec"
...
meta-BSPd recipes/fpga/fpga-tools_0.0.bbappend:
...
COMPATIBLE_MACHINE .= "|machined"
...
Then, the recipe will be skipped if it is not available for the current
MACHINE.
> 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.
Rather than ${MACHINE}.patch, the traditional way to do this is to have a
generic name for the file and then use a MACHINE-named subdirectory within your
BSP layers to define the machine-specific version. You can always make the dummy
patch not apply or specifically check for some aspect added by the dummy in
do_configure.
Cheers,
Paul
--
Paul Eggleton
Intel Open Source Technology Centre
More information about the poky
mailing list