[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