[yocto] DEPENDS only half working

Patrick Ohly patrick.ohly at intel.com
Wed Feb 1 02:48:17 PST 2017


On Wed, 2017-02-01 at 10:38 +0000, colin.helliwell at ln-systems.com wrote:
> I’ve got an odd problem with a pair of recipes:
> 
> App ‘bar’ uses ‘libfoo’, so I’ve set a DEPENDS in bar.bb – I can see
> this is being half picked up, because ‘bitbake bar’ shows both builds
> being started. However bar isn’t waiting on libfoo – bar tries to
> compile before libfoo has even finished configuring, let alone
> compiled and installed it’s header (foo_lib.h) into sysroot.
> 
> I think the recipes are probably otherwise correct - if I ‘bitbake
> libfoo’ then ‘bitbake bar’ then all works.
> 
> I’ve looked at some simple lib recipes within poky (e.g.
> libwebp_0.4.3.bb / webkitgtk_2.8.5.bb), and can’t spot anything
> wrong/missing. Not sure if libfoo should have any ‘install’ or similar
> sections, or any FILES_ settings, but I was [naively…?] hoping that
> the inherited classes will be sorting out all that generic kinda
> stuff.

[...]

> DEPENDS_${PN} = "libfoo"
  ^^^^^^^^^^^^^
This needs to be just "DEPENDS". DEPENDS sets the dependencies for the
compilation of the entire recipe, whereas...

> RDEPENDS_${PN} = "libfoo"

... RDEPENDS is for runtime dependencies specific packages and thus has
_<package name> as suffix ($PN = bar in this case).

libfoo gets compiled because of this entry, but because it is a runtime
dependency, compilation of bar doesn't wait for libfoo's completion.

-- 
Best Regards, Patrick Ohly

The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.






More information about the yocto mailing list