From: Yann Dirson Date: Thu, 16 Nov 2023 08:46:43 +0000 (+0100) Subject: ci: cross-build Linux aarch64 binary X-Git-Tag: 0.4.0~17^2 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=ffc7444fa6b0c933a3cdee30db5dab0237a9021f;p=xen-guest-agent.git ci: cross-build Linux aarch64 binary 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. --- diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a151c9d..b8c14d7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -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: diff --git a/Cross.toml b/Cross.toml index 4239462..d6b04be 100644 --- a/Cross.toml +++ b/Cross.toml @@ -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 +"""]