diff mbox series

[OSSTEST,13/15] cross builds: mfi-common: Prepare for kernel cross building

Message ID 20190426164002.22381-14-ian.jackson@eu.citrix.com (mailing list archive)
State Superseded
Headers show
Series Do armhf kernel builds on amd64 | expand

Commit Message

Ian Jackson April 26, 2019, 4:40 p.m. UTC
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(-)
diff mbox series

Patch

diff --git a/mfi-common b/mfi-common
index dad03e39..7b5c894f 100644
--- a/mfi-common
+++ b/mfi-common
@@ -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                       \