@@ -216,6 +216,32 @@ create_xen_build_job () {
$extra_runvars
}
+job_create_build_crossable () {
+ # job_create_build_crossable \
+ # JOBNAME RECIPE ARCH \
+ # [TARGARCH1 HOSTARCH1 [TARGARCH2 HOSTARCH2 ...]]] - \
+ # [RUNVAR1 [RUNVAR2 ...]]
+ local name=$1; shift
+ local recipe=$1; shift
+ local arch=$1; shift
+ local match_arch=$arch
+ local host_arch=$arch
+ while true; do
+ local t_targarch=$1; shift; if [ x$t_targarch = x- ]; then break; fi
+ local t_hostarch=$1; shift
+ if [ x$match_arch = x$t_targarch ]; then
+ host_arch=$t_hostarch
+ match_arch=X # prevents us mapping again, which would be a bit mad
+ fi
+ done
+ local build_hostflags
+ set_build_hostflags $host_arch
+ job_create_build $name $recipe \
+ arch=$arch host_arch=$host_arch \
+ host_hostflags=$build_hostflags \
+ "$@"
+}
+
set_build_hostflags () {
# set_build_hostflags HOST_ARCH
build_hostflags="share-build-$suite-$1,arch-$1,suite-$suite,purpose-build"
@@ -397,11 +423,11 @@ create_build_jobs () {
revision_qemuu=$REVISION_QEMU_UPSTREAM
fi
- job_create_build build-$arch-pvops build-kern \
- arch=$arch kconfighow=xen-enable-xen-config \
+ job_create_build_crossable build-$arch-pvops build-kern $arch \
+ - \
+ kconfighow=xen-enable-xen-config \
$RUNVARS $BUILD_RUNVARS $BUILD_LINUX_RUNVARS $arch_runvars \
$hostos_runvars \
- host_hostflags=$build_hostflags \
$pvops_kernel $pvops_kconfig_overrides \
${TREEVCS_LINUX:+treevcs_linux=}${TREEVCS_LINUX} \
tree_linuxfirmware=$TREE_LINUXFIRMWARE \
Introduce job_create_build_crossable, which takes a target->host architecture map in its arguments, and use it for build-kern, passing an empty architecture map. Overall functional change is only to add host_arch=$arch to the kernel build jobs, which has no ultimate effect because it's the same as the arch=$arch. (Difference in flight construction verified with standalone-generate-dump-flight-runvars.) Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com> --- mfi-common | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-)