From 2205fb9d050ad2bdaf77edd3a16f8a543d490333 Mon Sep 17 00:00:00 2001 From: Jianyong Wu Date: Sun, 2 Apr 2023 10:58:29 +0000 Subject: [PATCH] static-build: enable cross build for virtiofsd Based on messense/rust-musl-cross which offer cross build musl lib environment to cross compile virtiofsd. Fixes: #6557 Signed-off-by: Jianyong Wu --- .../static-build/virtiofsd/build-static-virtiofsd.sh | 2 +- tools/packaging/static-build/virtiofsd/build.sh | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/tools/packaging/static-build/virtiofsd/build-static-virtiofsd.sh b/tools/packaging/static-build/virtiofsd/build-static-virtiofsd.sh index 6bad74ffb2d4..a6370f8944c0 100755 --- a/tools/packaging/static-build/virtiofsd/build-static-virtiofsd.sh +++ b/tools/packaging/static-build/virtiofsd/build-static-virtiofsd.sh @@ -8,7 +8,7 @@ set -o errexit set -o nounset set -o pipefail -ARCH=$(uname -m) +ARCH=${ARCH:-$(uname -m)} ARCH_LIBC="" LIBC="" diff --git a/tools/packaging/static-build/virtiofsd/build.sh b/tools/packaging/static-build/virtiofsd/build.sh index 6eb5ad51bf8c..7f85c5c0d491 100755 --- a/tools/packaging/static-build/virtiofsd/build.sh +++ b/tools/packaging/static-build/virtiofsd/build.sh @@ -13,6 +13,7 @@ readonly virtiofsd_builder="${script_dir}/build-static-virtiofsd.sh" source "${script_dir}/../../scripts/lib.sh" +ARCH=${ARCH:-$(uname -m)} DESTDIR=${DESTDIR:-${PWD}} PREFIX=${PREFIX:-/opt/kata} kata_version="${kata_version:-}" @@ -32,7 +33,6 @@ package_output_dir="${package_output_dir:-}" [ -n "${virtiofsd_toolchain}" ] || die "Failed to get the rust toolchain to build virtiofsd" [ -n "${virtiofsd_zip}" ] || die "Failed to get virtiofsd binary URL" -ARCH=$(uname -m) case ${ARCH} in "aarch64") libc="musl" @@ -49,9 +49,10 @@ case ${ARCH} in esac container_image="${VIRTIOFSD_CONTAINER_BUILDER:-$(get_virtiofsd_image_name)}" +[ "${CROSS_BUILD}" == "true" ] && container_image="${container_image}-cross-build" sudo docker pull ${container_image} || \ - (sudo docker build \ + (sudo docker $BUILDX build $PLATFORM \ --build-arg RUST_TOOLCHAIN="${virtiofsd_toolchain}" \ -t "${container_image}" "${script_dir}/${libc}" && \ # No-op unless PUSH_TO_REGISTRY is exported as "yes" @@ -64,5 +65,6 @@ sudo docker run --rm -i -v "${repo_root_dir}:${repo_root_dir}" \ --env virtiofsd_repo="${virtiofsd_repo}" \ --env virtiofsd_version="${virtiofsd_version}" \ --env virtiofsd_zip="${virtiofsd_zip}" \ + --env ARCH="${ARCH}" \ "${container_image}" \ bash -c "${virtiofsd_builder}"