xen: avoid parse time errors for non-xen-archs

XEN_TARGET_ARCH, when expanded, would emit a bb.error(). Referencing
XEN_TARGET_ARCH in PACKAGECONFIG resulted in its expansion at the up front
parse time, rather than at compile time, so non-xen-supported-archs like
powerpc would see parse time errors, resulting in non-zero bitbake exit codes.

Naturally this isn't ideal, so instead have the mapping function return
'INVALID' in the unsupported case, and in anonymous python, raise SkipPackage
if the mapped architecture is invalid, so it's seen as unbuildable in that
case.

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
This commit is contained in:
Christopher Larson 2015-03-16 11:55:33 -07:00 committed by Bruce Ashfield
parent e1b0876fa9
commit 8a0ecb59fa
2 changed files with 6 additions and 1 deletions

View File

@ -14,5 +14,5 @@ def map_xen_arch(a, d):
elif re.match("aarch64.*", a): return "arm64"
elif a in valid_archs: return a
else:
bb.error("cannot map '%s' to a xen architecture" % a)
return "INVALID"

View File

@ -663,6 +663,11 @@ export STAGING_LIBDIR
export XEN_TARGET_ARCH = "${@map_xen_arch(d.getVar('TARGET_ARCH', True), d)}"
export XEN_COMPILE_ARCH = "${@map_xen_arch(d.getVar('BUILD_ARCH', True), d)}"
python () {
if d.getVar('XEN_TARGET_ARCH', True) == 'INVALID':
raise bb.parse.SkipPackage('Cannot map `%s` to a xen architecture' % d.getVar('TARGET_ARCH', True))
}
# hardcoded as Linux, as the only compatible hosts are Linux.
export XEN_OS = "Linux"