[OE-core] [PATCH v2 1/1] siteinfo.bbclass: Port over oe.dev logic for site files

Enrico Scholz enrico.scholz at sigma-chemnitz.de
Mon Jul 25 09:57:35 UTC 2011


Tom Rini <tom_rini-nmGgyN9QBj3QT0dZR+AlfA at public.gmane.org> writes:

> +python () {
> +    sitedata = set(siteinfo_data(d))
> +    if "endian-little" in sitedata:
> +        d.setVar("SITEINFO_ENDIANESS", "le")
> +    elif "endian-big" in sitedata:
> +        d.setVar("SITEINFO_ENDIANESS", "be")

Assigning SITEINFO_ENDIANESS in this way seems to break build of cross
packages (binutils, gcc).  E.g. for xscale (--> armv5te), these packages
will be build for armv5teb. This happens because tune-xscale.inc uses an
(unsafe)

| BASE_PACKAGE_ARCH = "${@['armv5teb', 'armv5te'][bb.data.getVar('SITEINFO_ENDIANESS', d, 1) == 'le']}"

statement. As there seems that something wents wrong when setting
SITEINFO_ENDIANESS in an anonymous python function, 'armv5teb' will be
assumed.

Using a more safe construct like

| BASE_PACKAGE_ARCH = "${@{'le' : 'armv5te', 'be' : 'armv5teb'}[ \
|                        bb.data.getVar('SITEINFO_ENDIANESS', d, 1)]}"

reveals that SITEINFO_ENDIANESS is undefined when expression is evaluated.

I am using bitbake master (5c8eeefc79455f058dda8f04cf4c12dc5418e00f).



Enrico




More information about the Openembedded-core mailing list