[oe] PREFERRED_PROVIDER syntax is eluding me...
Mike (mwester)
mwester at dls.net
Sat May 26 07:53:40 UTC 2007
I'm missing something simple, I expect. But try as I might, I cannot figure
this out.
Bitbake 1.8.3, building unslung-image (worked fine on 1.6): Bitbake says:
[snip]
NOTE: multiple providers are available for runtime libc6-unslung (glibc,
glibc-initial);
NOTE: consider defining a PREFERRED_PROVIDER entry to match runtime
libc6-unslung
[snip]
This is a problem, because with bitbake 1.8, without a preferred provider
specified, it seems to try to build both. But only glibc builds;
glibc-initial fails (and the build loops forever). This is easily fixed by
adding the following line to the local.conf file:
PREFERRED_PROVIDER_libc6-unslung = "glibc"
Except that it doesn't do a blasted thing. Neither does this line:
PREFERRED_PROVIDERS += " libc6-unslung:glibc"
Thinking that perhaps the "-unslung" was implied since the machine is
"unslung", I tried:
PREFERRED_PROVIDERS += " libc6:glibc"
Still no change. Being persistent, I tried every variant of the above that
I could think of, to no avail. It seems that bitbake is not understanding
or processing the info provided. The -D flag offers no further hints,
either.
For background, back in the glibc bitbake recipes, glibc-initial.bb does a
"require" of glibc.bb (hence the multiple providers). Near the tail-end of
glibc.bb we find:
PACKAGES_unslung = "libc6-unslung"
RDEPENDS_libc6-unslung = "nslu2-linksys-libs"
RPROVIDES_libc6-unslung = "libc6"
FILES_libc6-unslung = "/lib/librt*"
Figuring that perhaps the problem is that nothing actually "PROVIDES" libc6,
and that maybe bitbake needs to see the build-time dependency in order to
handle the run-time dependency PREFERRED_PROVIDER stuff, I even added
PROVIDES_libc6-unslung = "libc6"
to the glibc.bb recipe, and went back through the list of
PREFERRED_PROVIDERS in the local.conf file. No luck. No difference.
I finally hacked the glibc bitbake recipes so that glibc-initial doesn't
"RPROVIDE" libc6 anymore. Success - bitbake is happy. But I'm not. That
doesn't seem like the correct way to resolve the multiple providers issue,
and I expect that commiting such a change would (rightfully) anger many
folks.
If some kind soul could point me to the document or another recipe that
provides the correct syntax for handling this, or provide a pointer to
whatever it is that I'm missing, I'd be most grateful.
Thanks!
Mike (mwester)
More information about the Openembedded-devel
mailing list