[OE-core] RSS difficulties

Richard Purdie richard.purdie at linuxfoundation.org
Mon Feb 6 14:27:10 UTC 2017


On Mon, 2017-02-06 at 13:42 +0000, Phil Blundell wrote:
> On Fri, 2017-02-03 at 12:29 +0000, Phil Blundell wrote:
> > Ah, right, thanks.  The particular piece of magic I was missing
> > was:
> > 
> >             # Nothing need depend on libc-initial/gcc-cross-initial
> >             if "-initial" in taskdependees[task][0]:
> >                 continue
> > 
> > which I think explains all the difficulties I was having.
> Actually, that explains most of my difficulties but not all of them.
> The remaining ones seem to come down to missing dependencies but I am
> not quite clear on why the dependencies are missing.
> 
> The problematic recipes are Java ones. The Java toolchain, as you
> might expect, has a fairly complicated dependency tree but
> essentially:
> 
> - any Java package has DEPENDS = "virtual/javac-native", which is
> PROVIDEd by ecj-bootstrap-native.bb
> 
> - ecj-bootstrap-native.bb is basically just a wrapper script which
> runs the Java compiler. The actual compiler implementation is in
> libecj-bootstrap-native.bb and ecj-bootstrap-native.bb RDEPENDS on
> that.
> 
> If I run "bitbake -D -D ..." then I see:
> 
> DEBUG: Added runtime dependencies ['libecj-bootstrap-native'] for
> .../meta-java/recipes-core/ecj/ecj-bootstrap-native.bb
> 
> but this dependency edge doesn't show up in task-depends.dot and,
> sure enough, libecj-bootstrap-native isn't getting installed into the
> recipe-sysroot.
> 
> Is there some other piece of logic that is squashing these
> dependencies? Or is there somewhere else that I ought to be looking
> for them?

If its not in task-depends.dot, there is a much higher level problem
with bitbake itself not seeing the dependencies before sstate/RSS gets
anywhere near them.

I'm going to guess its some combination of -native and RDEPENDS
together which are known to not work entirely "correctly".

Some example open bugs:

https://bugzilla.yoctoproject.org/show_bug.cgi?id=10113
https://bugzilla.yoctoproject.org/show_bug.cgi?id=6317

The trouble is that for native, PACKAGES = "" so how would bitbake
known which RDEPENDS_<pkg> to look at? What exists today is all a bit
of a hack which works for our common cases but has problems. I've been
meaning to find time to take a good look at it and come up with a
proper plan but so far it hasn't made the top of the agenda.

What happens if you set DEPENDS?

Cheers,

Richard






More information about the Openembedded-core mailing list