[OE-core] SDK and external toolchain

Matthieu CRAPET Matthieu.CRAPET at ingenico.com
Thu Jul 26 07:14:52 UTC 2012


Greetings,

Updated recently my oe-core and faced an unwanted side effect.
You need to know that I'm using an externel (linaro) toolchain (my
.bb/.inc are a clone of "sourcery" toolchain example).
My toolchain is compiled against a custom (external) eglibc 2.15.

Since commit a0de2a56f19ae4d8cd88e46e96917a7a019fe1ab --
image.bbclass: Add support to build the SDK in parallel with the image
http://cgit.openembedded.org/openembedded-core/commit/?id=a0de2a56f19ae4
d8cd88e46e96917a7a019fe1ab

my images generation are failing because it tries to compile eglib 2.16
and do_configure fails. I have also 3 errors:
ERROR: Multiple .bb files are due to be built which each provide
virtual/libc (.../meta/recipes-core/eglibc/eglibc_2.15.bb
.../meta-ingenico/recipes/external-linaro-toolchain/external-linaro-tool
chain.bb).
 This usually means one provides something the other doesn't and should.
ERROR: Multiple .bb files are due to be built which each provide
virtual/arm-ingenico-linux-gnueabi-libc-for-gcc
(.../meta/recipes-core/eglibc/eglibc_2.15.bb
.../meta-ingenico/recipes/external-linaro-toolchain/external-linaro-tool
chain.bb).
 This usually means one provides something the other doesn't and should.
ERROR: Multiple .bb files are due to be built which each provide
virtual/libiconv (.../meta/recipes-core/eglibc/eglibc_2.15.bb
.../meta-ingenico/recipes/external-linaro-toolchain/external-linaro-tool
chain.bb).
 This usually means one provides something the other doesn't and should.

Notice that "PREFERRED_PROVIDER"s are correctly defined (like in
distro/include/tcmode-external-sourcery.inc). And I use bitbake 1.15.3.

For now I fixed it crudely, because I don't need SDK.

diff --git a/meta/classes/toolchain-scripts.bbclass
b/meta/classes/toolchain-scripts.bbclass
index 44284c3..f5fd4d7 100644
--- a/meta/classes/toolchain-scripts.bbclass
+++ b/meta/classes/toolchain-scripts.bbclass
@@ -136,7 +136,7 @@ toolchain_create_sdk_env_script_for_installer () {
 #we get the cached site config in the runtime
 TOOLCHAIN_CONFIGSITE_NOCACHE = "${@siteinfo_get_files(d, True)}"
 TOOLCHAIN_CONFIGSITE_SYSROOTCACHE =
"${STAGING_DATADIR}/${TARGET_SYS}_config_site.d"
-TOOLCHAIN_NEED_CONFIGSITE_CACHE = "${TCLIBC} ncurses"
+TOOLCHAIN_NEED_CONFIGSITE_CACHE = "ncurses"

 #This function create a site config file
 toolchain_create_sdk_siteconfig () {
---

populate_sdk_base.bbclass inheric toolchain-scripts which adds the
(unwanted) eglibc dependency.
Maybe this should be conditional from TOOLCHAIN_TARGET_TASK value?  Or
dependencies should be added only when calling
task-core-standalone-sdk-target?
In my use case, when I bitbake an image recipe, I don't want to deal
with SDK.

Concerning errors, is there a way to see what's not provided in order to
fix virtual/libc message (bitbake -e) ?

Best regards,
Matthieu




More information about the Openembedded-core mailing list