Tom Rini <tom_rini-nmggyn9qbj3qt0dzr+a...@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

_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to