From fb406f44f32d4b06d6a1597043c60cf3553d3808 Mon Sep 17 00:00:00 2001 From: Ola Redell Date: Wed, 15 Nov 2017 12:09:24 +0100 Subject: added support for build of x86 targets included definition of jailhouse architecture in JH_ARCH --- classes/jailhouse-cell.bbclass | 2 +- recipes-jailhouse/jailhouse/jailhouse-defs.inc | 25 +++++++++++++++++++++++++ recipes-jailhouse/jailhouse/jailhouse.inc | 9 ++++++--- 3 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 recipes-jailhouse/jailhouse/jailhouse-defs.inc diff --git a/classes/jailhouse-cell.bbclass b/classes/jailhouse-cell.bbclass index f1cd6a0..ab7b9ce 100644 --- a/classes/jailhouse-cell.bbclass +++ b/classes/jailhouse-cell.bbclass @@ -1,4 +1,4 @@ -require recipes-jailhouse/jailhouse/jailhouse-dirs.inc +require recipes-jailhouse/jailhouse/jailhouse-defs.inc INMATE ?= "" CELLCONFIG ?= "" diff --git a/recipes-jailhouse/jailhouse/jailhouse-defs.inc b/recipes-jailhouse/jailhouse/jailhouse-defs.inc new file mode 100644 index 0000000..8dd30e3 --- /dev/null +++ b/recipes-jailhouse/jailhouse/jailhouse-defs.inc @@ -0,0 +1,25 @@ +JH_DATADIR ?= "${datadir}/jailhouse" +CELL_DIR ?= "${JH_DATADIR}/cells" +CELLCONF_DIR ?= "${JH_DATADIR}/configs" +INMATES_DIR ?= "${JH_DATADIR}/inmates" + +# Set jailhouse architecture JH_ARCH variable +# +# return value must match one of architectures supported by jailhouse +# +valid_jh_archs = "x86 arm" + +def map_jh_arch(a, d): + import re + + valid_jh_archs = d.getVar('valid_jh_archs', True).split() + + if re.match('(i.86|athlon|x86.64)$', a): return 'x86' + elif re.match('armeb$', a): return 'arm' + elif re.match('aarch64$', a): return 'arm64' + elif re.match('aarch64_be$', a): return 'arm64' + elif a in valid_jh_archs: return a + else: + bb.error("cannot map '%s' to a jailhouse supported architecture" % a) + +export JH_ARCH = "${@map_jh_arch(d.getVar('TARGET_ARCH', True), d)}" diff --git a/recipes-jailhouse/jailhouse/jailhouse.inc b/recipes-jailhouse/jailhouse/jailhouse.inc index 3965fd1..fb6b021 100644 --- a/recipes-jailhouse/jailhouse/jailhouse.inc +++ b/recipes-jailhouse/jailhouse/jailhouse.inc @@ -14,11 +14,14 @@ DEPENDS = "virtual/kernel make-native python-mako-native dtc-native python-mako" S ="${WORKDIR}/git" -require jailhouse-dirs.inc +require jailhouse-defs.inc inherit module pythonnative bash-completion do_configure() { - cp "${STAGING_DIR_HOST}/${CELLCONF_DIR}/"*.c ${S}/configs/ + if [ -d ${STAGING_DIR_HOST}/${CELLCONF_DIR} ]; + then + cp "${STAGING_DIR_HOST}/${CELLCONF_DIR}/"*.c ${S}/configs/ + fi } USER_SPACE_CFLAGS = '${CFLAGS} -DLIBEXECDIR=\\\"${libexecdir}\\\" \ @@ -53,7 +56,7 @@ do_install() { install ${B}/configs/*.cell ${D}${CELL_DIR}/ install -d ${D}${INMATES_DIR} - install ${B}/inmates/demos/${TARGET_ARCH}/*.bin ${D}${INMATES_DIR} + install ${B}/inmates/demos/${JH_ARCH}/*.bin ${D}${INMATES_DIR} } PACKAGE_BEFORE_PN = "kernel-module-jailhouse" -- cgit v1.2.3-54-g00ecf