]> xenbits.xensource.com Git - xen-guest-agent.git/commitdiff
ci: cross-build Linux aarch64 binary
authorYann Dirson <yann.dirson@vates.fr>
Thu, 16 Nov 2023 08:46:43 +0000 (09:46 +0100)
committerYann Dirson <yann.dirson@vates.fr>
Fri, 22 Dec 2023 12:27:36 +0000 (13:27 +0100)
Testbuilding only, as we don't have an obvious use-case to support.

Builds against glibc in a Debian chroot to be able to check
the xenstore build feature.

.gitlab-ci.yml
Cross.toml

index a151c9d3dbe34304b2597c10b6700fbdba941664..b8c14d75fb879d198359c8ed4af63f05f91c1aca 100644 (file)
@@ -61,6 +61,14 @@ variables:
     - .cross-build-template
   variables:
     CARGO_BUILD_TARGET: "x86_64-pc-windows-gnu"
+
+.cross-linux-aarch64-build-template:
+  extends:
+    - .cross-build-template
+  variables:
+    CARGO_BUILD_TARGET: "aarch64-unknown-linux-gnu"
+    BINDGEN_EXTRA_CLANG_ARGS_aarch64_unknown_linux_gnu: "--sysroot=/usr/aarch64-linux-gnu -idirafter/usr/include"
+
 .scheduled:
   rules:
     - if: $CI_PIPELINE_SOURCE == "schedule"
@@ -207,6 +215,19 @@ build-windows-x86_64:
     paths:
       - target/x86_64-pc-windows-gnu/debug/xen-guest-agent.exe
 
+build-linux-aarch64:
+  parallel: !reference [.featurematrix,parallel]
+  extends:
+    - .cross-linux-aarch64-build-template
+    - .not-scheduled
+  variables:
+    CARGO_FLAGS: "-v"
+  before_script:
+    - !reference [.cross-build-template,before_script]
+    - dpkg --add-architecture arm64
+    - apt-get update
+    - apt-get install -y libxen-dev:arm64
+
 ## continuous checking against most recent dependencies
 
 build-latest-linux:
index 4239462226c7b23fa59a87d621dad3ac96c9b301..d6b04be3dbff943fc49f760f8142aacdb6a216c3 100644 (file)
@@ -1,3 +1,4 @@
+# this file is not used by CI job, but allows to make local cross builds
 [target.x86_64-unknown-freebsd]
 pre-build = ["""
 mkdir -p /usr/local/x86_64-unknown-freebsd12/usr &&
@@ -6,3 +7,10 @@ ln -s ../lib /usr/local/x86_64-unknown-freebsd12/usr/lib &&
 PKG=$(./devscripts/freebsd-fetch-package.sh xen-tools) &&
 tar -C /usr/local/x86_64-unknown-freebsd12/ --xform s,^/usr/local/,/usr/, -xf $PKG
 """]
+
+[target.aarch64-unknown-linux-gnu]
+pre-build = ["""
+dpkg --add-architecture arm64
+apt-get update
+apt-get install -y libxen-dev:arm64
+"""]