[OE-core] Does support for external toolchains working in current OE?

Marcin Juszkiewicz marcin.juszkiewicz at linaro.org
Fri Apr 5 11:48:24 UTC 2013


W dniu 05.04.2013 12:11, Richard Purdie pisze:
> On Fri, 2013-04-05 at 11:56 +0200, Marcin Juszkiewicz wrote:
>> http://tygrysek.juszkiewicz.com.pl/~hrw/tmp/rp-log.txt 3.4MB

> Some key bits of the log:
> 
> DEBUG: Added runtime dependency eglibc
> for /home/hrw/HDD/devel/canonical/aarch64/openembedded/repos/openembedded-core/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb
> DEBUG: Added runtime dependency eglibc-dbg
> for /home/hrw/HDD/devel/canonical/aarch64/openembedded/repos/openembedded-core/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb
> DEBUG: Added runtime dependency eglibc-dev
> for /home/hrw/HDD/devel/canonical/aarch64/openembedded/repos/openembedded-core/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb
> DEBUG: Added runtime dependency eglibc-utils
> for /home/hrw/HDD/devel/canonical/aarch64/openembedded/repos/openembedded-core/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb
> DEBUG: Added runtime dependency eglibc-thread-db
> for /home/hrw/HDD/devel/canonical/aarch64/openembedded/repos/openembedded-core/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb
> DEBUG: Added runtime dependency eglibc-localedata-i18n
> for /home/hrw/HDD/devel/canonical/aarch64/openembedded/repos/openembedded-core/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb
> DEBUG: Added runtime dependency eglibc-gconv-ibm850
> for /home/hrw/HDD/devel/canonical/aarch64/openembedded/repos/openembedded-core/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb
> DEBUG: Added runtime dependency eglibc-gconv-cp1252
> for /home/hrw/HDD/devel/canonical/aarch64/openembedded/repos/openembedded-core/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb
> DEBUG: Added runtime dependency eglibc-gconv-iso8859-1
> for /home/hrw/HDD/devel/canonical/aarch64/openembedded/repos/openembedded-core/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb
> DEBUG: Added runtime dependency eglibc-gconv-iso8859-15
> for /home/hrw/HDD/devel/canonical/aarch64/openembedded/repos/openembedded-core/meta/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bb
> DEBUG: providers for eglibc-dev are: ['eglibc']
> DEBUG: adding
> '/home/hrw/HDD/devel/canonical/aarch64/openembedded/repos/openembedded-core/meta/recipes-core/eglibc/eglibc_2.17.bb' to satisfy runtime 'eglibc-dev'
> DEBUG: providers for eglibc are: ['eglibc']
> DEBUG: adding
> '/home/hrw/HDD/devel/canonical/aarch64/openembedded/repos/openembedded-core/meta/recipes-core/eglibc/eglibc_2.17.bb' to satisfy runtime 'eglibc'
> DEBUG: providers for eglibc-utils are: ['eglibc']
> 
> So where does this come from? packagegroup-core-standalone-sdk-target.bb
> leads us to LIBC_DEPENDENCIES which leads to:
> 
> $ cat conf/distro/include/tclibc-eglibc.inc
> 
> LIBC_DEPENDENCIES = "libsegfault \
> 		     eglibc \
> 		     eglibc-dbg \
> 		     eglibc-dev \
> 		     eglibc-utils \
> 		     eglibc-thread-db \
> 		     ${@get_libc_locales_dependencies(d)}"


> LIBC_LOCALE_DEPENDENCIES = "\
> 	eglibc-localedata-i18n \
> 	eglibc-gconv-ibm850 \
> 	eglibc-gconv-cp1252 \
> 	eglibc-gconv-iso8859-1 \
> 	eglibc-gconv-iso8859-15"


> so I suspect you either need to provide some of these things, 

> or reset those variables...

They can not be reset cause TCMODE is loaded before TCLIBC.

But LIBC_LOCALE_DEPENDENCIES can be ignored when TCMODE include does not
have "libc-locale" in DISTRO_FEATURES_LIBC (which is how it is done in
external-linaro toolchain).

LIBC_DEPENDENCIES left... External Linaro toolchain uses
eglibc-package.inc to get RPROVIDES for "glibc*" things so I added also
"eglibc*" ones:

RPROVIDES_${PN}            += " eglibc"
RPROVIDES_${PN}-dev        += " eglibc-dev"
RPROVIDES_${PN}-doc        += " eglibc-doc"
RPROVIDES_${PN}-dbg        += " eglibc-dbg"
RPROVIDES_${PN}-pic        += " eglibc-pic"
RPROVIDES_${PN}-utils      += " eglibc-utils"
RPROVIDES_${PN}-gconv      += " eglibc-gconv"
RPROVIDES_${PN}-pcprofile  += " eglibc-pcprofile"
RPROVIDES_eglibc-extra-nss += " eglibc-extra-nss"
RPROVIDES_eglibc-thread-db += " eglibc-thread-db"

Last two lines does not have any sense from BitBake point of view so are
ignored.

Resulting packages are still wrong... So let's hack tclibc-eglibc.inc to
use 'glibc*' in LIBC_DEPENDENCIES instead of 'eglibc*'. No luck again:

Provides: glibc-doc, eglibc-doc
Provides: glibc-pcprofile, eglibc-pcprofile
Provides: glibc-staticdev, libc-staticdev
Provides: eglibc-dbg, libc-dbg, glibc-dbg
Provides: virtual-libc-dev, libc6-dev, glibc-dev, libc-dev, eglibc-dev
Provides: rtld(GNU_HASH), glibc, eglibc
Provides: glibc-thread-db

But I do not think that LIBC_DEPENDENCIES are reason here. When reset
them in tclibc-eglibc.inc file then I get the same error about multiple
recipes ;(





More information about the Openembedded-core mailing list