When trying to use Sourcery CodeBench Lite ARM toolchain to build a core-image-minimal image bitbake bails out with errors about multiple .bb files providing virtual/libc and others. In meta/conf/distro/include/tcmode-external-sourcery.inc I changed: TARGET_PREFIX = "${CSL_TARGET_SYS}-" to: TARGET_PREFIX ?= "${CSL_TARGET_SYS}-" and in meta-yocto/conf/distro/poky.conf I added TCMODE = "external-csl" CSL_VER_MAIN = "2012.03-57" EXTERNAL_TOOLCHAIN = "/home/stefans/csl" TARGET_PREFIX = "arm-none-linux-gnueabi-" bitbake core-image-minimal Build Configuration: BB_VERSION = "1.16.0" TARGET_ARCH = "arm" TARGET_OS = "linux-gnueabi" MACHINE = "qemuarm" DISTRO = "poky" DISTRO_VERSION = "1.3+snapshot-20121106" TUNE_FEATURES = "armv5 dsp thumb arm926ejs" TARGET_FPU = "soft" meta meta-yocto meta-yocto-bsp = "master:78983e939ab17f02f8911c8b0d0e326b419856b9" ERROR: Multiple .bb files are due to be built which each provide virtual/libc (/home/stefans/yocto/poky/meta/recipes-core/eglibc/eglibc_2.16.bb /home/stefans/yocto/poky/meta/recipes-core/meta/external-sourcery-toolchain.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-none-linux-gnueabi-libc-for-gcc (/home/stefans/yocto/poky/meta/recipes-core/eglibc/eglibc_2.16.bb /home/stefans/yocto/poky/meta/recipes-core/meta/external-sourcery-toolchain.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 (/home/stefans/yocto/poky/meta/recipes-core/eglibc/eglibc_2.16.bb /home/stefans/yocto/poky/meta/recipes-core/meta/external-sourcery-toolchain.bb). This usually means one provides something the other doesn't and should. NOTE: Executing SetScene Tasks NOTE: Executing RunQueue Tasks ERROR: Function failed: do_install (see /home/stefans/yocto/builds/csl/tmp/work/armv5te-poky-linux-gnueabi/external-sourcery-toolchain-2012.03-57-r7/temp/log.do_install.2066 for further information) ERROR: Logfile of failure stored in: /home/stefans/yocto/builds/csl/tmp/work/armv5te-poky-linux-gnueabi/external-sourcery-toolchain-2012.03-57-r7/temp/log.do_install.2066 Log data follows: | DEBUG: Executing shell function do_install | cp: target `/home/stefans/yocto/builds/csl/tmp/work/armv5te-poky-linux-gnueabi/external-sourcery-toolchain-2012.03-57-r7/image/lib' is not a directory | ERROR: Function failed: do_install (see /home/stefans/yocto/builds/csl/tmp/work/armv5te-poky-linux-gnueabi/external-sourcery-toolchain-2012.03-57-r7/temp/log.do_install.2066 for further information) ERROR: Task 260 (/home/stefans/yocto/poky/meta/recipes-core/meta/external-sourcery-toolchain.bb, do_install) failed with exit code '1' --- [stefans@firebird csl]$ bitbake -D core-image-minimal | grep arm-none-linux-gnueabi-libc-for-gcc DEBUG: checking PREFERRED_PROVIDER_virtual/arm-none-linux-gnueabi-libc-for-gcc (value external-sourcery-toolchain) against ['eglibc'] DEBUG: checking PREFERRED_PROVIDER_virtual/arm-none-linux-gnueabi-libc-for-gcc (value external-sourcery-toolchain) against ['eglibc'] DEBUG: checking PREFERRED_PROVIDER_virtual/arm-none-linux-gnueabi-libc-for-gcc (value external-sourcery-toolchain) against ['eglibc'] DEBUG: checking PREFERRED_PROVIDER_virtual/arm-none-linux-gnueabi-libc-for-gcc (value external-sourcery-toolchain) against ['eglibc'] DEBUG: providers for virtual/arm-none-linux-gnueabi-libc-for-gcc are: ['eglibc', 'external-sourcery-toolchain'] NOTE: selecting external-sourcery-toolchain to satisfy virtual/arm-none-linux-gnueabi-libc-for-gcc due to PREFERRED_PROVIDERS DEBUG: sorted providers for virtual/arm-none-linux-gnueabi-libc-for-gcc are: ['/home/stefans/yocto/poky/meta/recipes-core/meta/external-sourcery-toolchain.bb', '/home/stefans/yocto/poky/meta/recipes-core/eglibc/eglibc_2.16.bb'] ERROR: Multiple .bb files are due to be built which each provide virtual/arm-none-linux-gnueabi-libc-for-gcc (/home/stefans/yocto/poky/meta/recipes-core/eglibc/eglibc_2.16.bb /home/stefans/yocto/poky/meta/recipes-core/meta/external-sourcery-toolchain.bb). ---- [stefans@firebird csl]$ ls -l /home/stefans/yocto/builds/csl/tmp/work/armv5te-poky-linux-gnueabi/external-sourcery-toolchain-2012.03-57-r7/image/ total 0 [stefans@firebird csl]$ cat /home/stefans/yocto/builds/csl/tmp/work/armv5te-poky-linux-gnueabi/external-sourcery-toolchain-2012.03-57-r7/temp/log.do_install.2066 DEBUG: Executing shell function do_install cp: target `/home/stefans/yocto/builds/csl/tmp/work/armv5te-poky-linux-gnueabi/external-sourcery-toolchain-2012.03-57-r7/image/lib' is not a directory ERROR: Function failed: do_install (see /home/stefans/yocto/builds/csl/tmp/work/armv5te-poky-linux-gnueabi/external-sourcery-toolchain-2012.03-57-r7/temp/log.do_install.2066 for further information) ---- There are two errors but I'm not sure if the second error (cp missing target) is related to the first one. Also, I have the same errors on danny release as well the above master commit.
Created attachment 934 [details] run.do_install for the second error
run.do_install log has some weirdness in it: do_install() { # Use optimized files if available sysroot="ERROR: ld.so: object 'libpseudo.so' from LD_PRELOAD cannot be p reloaded: ignored. /home/stefans/csl/bin/../arm-none-linux-gnueabi/libc" wth?! After poking around I did this hack: git diff meta/conf/distro/include/tcmode-external-sourcery.inc diff --git a/meta/conf/distro/include/tcmode-external-sourcery.inc b/meta/conf/distro/include/tcmode-external-sourcery.inc index 098c724..2e0d464 100644 --- a/meta/conf/distro/include/tcmode-external-sourcery.inc +++ b/meta/conf/distro/include/tcmode-external-sourcery.inc @@ -46,7 +46,7 @@ TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_HOST}" # files will be extracted into the OE sysroot def exttc_run(d, cmd): try: - return bb.process.run(cmd, shell=True, env={'PATH': d.getVar('PATH', True)})[0].rstrip() + return bb.process.run(cmd, shell=True, env={'PATH': d.getVar('PATH', True)}, stderr=False)[0].rstrip() except (OSError, bb.process.CmdError): return '' Now I don't get the second error anymore (the one about cp) when doing bitbake core-image-minimal and I do see the error (instead of getting into sysroot): NOTE: Executing SetScene Tasks NOTE: Executing RunQueue Tasks ERROR: ld.so: object 'libpseudo.so' from LD_PRELOAD cannot be preloaded: ignored. Currently 2 running tasks (237 of 1326): 0: external-sourcery-toolchain-2012.03-57-r7 do_install (pid 10380)
By community agreement we've removed external-sourcery-toolchain from OE-Core in master [1], in favour of meta-sourcery which is better maintained. Accordingly for 1.5 this is a WONTFIX; people should use meta-sourcery instead there also. [1] http://cgit.openembedded.org/openembedded-core/commit/?id=7603b15415301679bccbcb89af688c211704a43a