[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