[meta-virtualization] [PATCH] xen: avoid parse time errors for non-xen-archs
Bruce Ashfield
bruce.ashfield at gmail.com
Tue Mar 17 06:42:47 PDT 2015
On Mon, Mar 16, 2015 at 2:55 PM, Christopher Larson <kergoth at gmail.com> wrote:
> 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.
Looks good to me.
merged.
Bruce
>
> Signed-off-by: Christopher Larson <kergoth at gmail.com>
> ---
> recipes-extended/xen/xen-arch.inc | 2 +-
> recipes-extended/xen/xen.inc | 5 +++++
> 2 files changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/recipes-extended/xen/xen-arch.inc b/recipes-extended/xen/xen-arch.inc
> index bcf9f54..fb0093e 100644
> --- a/recipes-extended/xen/xen-arch.inc
> +++ b/recipes-extended/xen/xen-arch.inc
> @@ -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"
>
> diff --git a/recipes-extended/xen/xen.inc b/recipes-extended/xen/xen.inc
> index 0e4136a..432bf4d 100644
> --- a/recipes-extended/xen/xen.inc
> +++ b/recipes-extended/xen/xen.inc
> @@ -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"
>
> --
> 2.2.1
>
> --
> _______________________________________________
> meta-virtualization mailing list
> meta-virtualization at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-virtualization
--
"Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end"
More information about the meta-virtualization
mailing list