.../debian/unstable-arm32-gcc.dockerfile | 24 +++++++++ automation/gitlab-ci/build.yaml | 50 +++++++++++++++++++ automation/scripts/build | 9 ++++ 3 files changed, 83 insertions(+) create mode 100644 automation/build/debian/unstable-arm32-gcc.dockerfile
Add a debian build container with cross-gcc for arm32 installed.
Add build jobs to cross-compile Xen-only for arm32.
Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
---
.../debian/unstable-arm32-gcc.dockerfile | 24 +++++++++
automation/gitlab-ci/build.yaml | 50 +++++++++++++++++++
automation/scripts/build | 9 ++++
3 files changed, 83 insertions(+)
create mode 100644 automation/build/debian/unstable-arm32-gcc.dockerfile
diff --git a/automation/build/debian/unstable-arm32-gcc.dockerfile b/automation/build/debian/unstable-arm32-gcc.dockerfile
new file mode 100644
index 0000000000..b41a57f197
--- /dev/null
+++ b/automation/build/debian/unstable-arm32-gcc.dockerfile
@@ -0,0 +1,24 @@
+FROM debian:unstable
+LABEL maintainer.name="The Xen Project" \
+ maintainer.email="xen-devel@lists.xenproject.org"
+
+ENV DEBIAN_FRONTEND=noninteractive
+ENV USER root
+ENV CROSS_COMPILE /usr/bin/arm-linux-gnueabihf-
+
+RUN mkdir /build
+WORKDIR /build
+
+# build depends
+RUN apt-get update && \
+ apt-get --quiet --yes install \
+ build-essential \
+ flex \
+ bison \
+ git \
+ gcc-arm-linux-gnueabihf \
+ && \
+ apt-get autoremove -y && \
+ apt-get clean && \
+ rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/*
+
diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml
index d00b8a5123..22114662f2 100644
--- a/automation/gitlab-ci/build.yaml
+++ b/automation/gitlab-ci/build.yaml
@@ -117,6 +117,33 @@
variables:
<<: *clang
+.arm32-cross-build-tmpl:
+ <<: *build
+ variables:
+ XEN_TARGET_ARCH: arm32
+ tags:
+ - x86_64
+
+.arm32-cross-build:
+ extends: .arm32-cross-build-tmpl
+ variables:
+ debug: n
+
+.arm32-cross-build-debug:
+ extends: .arm32-cross-build-tmpl
+ variables:
+ debug: y
+
+.gcc-arm32-cross-build:
+ extends: .arm32-cross-build
+ variables:
+ <<: *gcc
+
+.gcc-arm32-cross-build-debug:
+ extends: .arm32-cross-build-debug
+ variables:
+ <<: *gcc
+
.arm64-build-tmpl:
<<: *build
variables:
@@ -454,6 +481,29 @@ alpine-3.12-clang-debug:
CONTAINER: alpine:3.12
allow_failure: true
+# Arm32 cross-build
+
+debian-unstable-gcc-arm32:
+ extends: .gcc-arm32-cross-build
+ variables:
+ CONTAINER: debian:unstable-arm32-gcc
+
+debian-unstable-gcc-arm32-debug:
+ extends: .gcc-arm32-cross-build-debug
+ variables:
+ CONTAINER: debian:unstable-arm32-gcc
+
+debian-unstable-gcc-arm32-randconfig:
+ extends: .gcc-arm32-cross-build
+ variables:
+ CONTAINER: debian:unstable-arm32-gcc
+ RANDCONFIG: y
+
+debian-unstable-gcc-arm32-debug-randconfig:
+ extends: .gcc-arm32-cross-build-debug
+ variables:
+ CONTAINER: debian:unstable-arm32-gcc
+ RANDCONFIG: y
# Arm builds
diff --git a/automation/scripts/build b/automation/scripts/build
index d8990c3bf4..e7d68f7a9d 100755
--- a/automation/scripts/build
+++ b/automation/scripts/build
@@ -15,6 +15,15 @@ else
make -j$(nproc) -C xen defconfig
fi
+# arm32 only cross-compiles the hypervisor
+if [[ "${XEN_TARGET_ARCH}" = "arm32" ]]; then
+ make -j$(nproc) xen
+ cp xen/.config xen-config
+ mkdir binaries
+ cp xen/xen binaries/xen
+ exit 0
+fi
+
# build up our configure options
cfgargs=()
cfgargs+=("--enable-docs")
--
2.17.1
On Fri, Feb 12, 2021 at 05:38:13PM -0800, Stefano Stabellini wrote: > Add a debian build container with cross-gcc for arm32 installed. > Add build jobs to cross-compile Xen-only for arm32. > > Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com> Acked-by: Wei Liu <wl@xen.org> Cc Ian. The risk is small: Gitlab CI doesn't gate pushes to Xen, but it is rather beneficial to have arm32 builds for Xen. > --- > .../debian/unstable-arm32-gcc.dockerfile | 24 +++++++++ > automation/gitlab-ci/build.yaml | 50 +++++++++++++++++++ > automation/scripts/build | 9 ++++ > 3 files changed, 83 insertions(+) > create mode 100644 automation/build/debian/unstable-arm32-gcc.dockerfile > > diff --git a/automation/build/debian/unstable-arm32-gcc.dockerfile b/automation/build/debian/unstable-arm32-gcc.dockerfile > new file mode 100644 > index 0000000000..b41a57f197 > --- /dev/null > +++ b/automation/build/debian/unstable-arm32-gcc.dockerfile > @@ -0,0 +1,24 @@ > +FROM debian:unstable > +LABEL maintainer.name="The Xen Project" \ > + maintainer.email="xen-devel@lists.xenproject.org" > + > +ENV DEBIAN_FRONTEND=noninteractive > +ENV USER root > +ENV CROSS_COMPILE /usr/bin/arm-linux-gnueabihf- > + > +RUN mkdir /build > +WORKDIR /build > + > +# build depends > +RUN apt-get update && \ > + apt-get --quiet --yes install \ > + build-essential \ > + flex \ > + bison \ > + git \ > + gcc-arm-linux-gnueabihf \ > + && \ > + apt-get autoremove -y && \ > + apt-get clean && \ > + rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/* > + > diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml > index d00b8a5123..22114662f2 100644 > --- a/automation/gitlab-ci/build.yaml > +++ b/automation/gitlab-ci/build.yaml > @@ -117,6 +117,33 @@ > variables: > <<: *clang > > +.arm32-cross-build-tmpl: > + <<: *build > + variables: > + XEN_TARGET_ARCH: arm32 > + tags: > + - x86_64 > + > +.arm32-cross-build: > + extends: .arm32-cross-build-tmpl > + variables: > + debug: n > + > +.arm32-cross-build-debug: > + extends: .arm32-cross-build-tmpl > + variables: > + debug: y > + > +.gcc-arm32-cross-build: > + extends: .arm32-cross-build > + variables: > + <<: *gcc > + > +.gcc-arm32-cross-build-debug: > + extends: .arm32-cross-build-debug > + variables: > + <<: *gcc > + > .arm64-build-tmpl: > <<: *build > variables: > @@ -454,6 +481,29 @@ alpine-3.12-clang-debug: > CONTAINER: alpine:3.12 > allow_failure: true > > +# Arm32 cross-build > + > +debian-unstable-gcc-arm32: > + extends: .gcc-arm32-cross-build > + variables: > + CONTAINER: debian:unstable-arm32-gcc > + > +debian-unstable-gcc-arm32-debug: > + extends: .gcc-arm32-cross-build-debug > + variables: > + CONTAINER: debian:unstable-arm32-gcc > + > +debian-unstable-gcc-arm32-randconfig: > + extends: .gcc-arm32-cross-build > + variables: > + CONTAINER: debian:unstable-arm32-gcc > + RANDCONFIG: y > + > +debian-unstable-gcc-arm32-debug-randconfig: > + extends: .gcc-arm32-cross-build-debug > + variables: > + CONTAINER: debian:unstable-arm32-gcc > + RANDCONFIG: y > > # Arm builds > > diff --git a/automation/scripts/build b/automation/scripts/build > index d8990c3bf4..e7d68f7a9d 100755 > --- a/automation/scripts/build > +++ b/automation/scripts/build > @@ -15,6 +15,15 @@ else > make -j$(nproc) -C xen defconfig > fi > > +# arm32 only cross-compiles the hypervisor > +if [[ "${XEN_TARGET_ARCH}" = "arm32" ]]; then > + make -j$(nproc) xen > + cp xen/.config xen-config > + mkdir binaries > + cp xen/xen binaries/xen > + exit 0 > +fi > + > # build up our configure options > cfgargs=() > cfgargs+=("--enable-docs") > -- > 2.17.1 >
On Fri, Feb 12, 2021 at 05:38:13PM -0800, Stefano Stabellini wrote: > diff --git a/automation/scripts/build b/automation/scripts/build > index d8990c3bf4..e7d68f7a9d 100755 > --- a/automation/scripts/build > +++ b/automation/scripts/build > @@ -15,6 +15,15 @@ else > make -j$(nproc) -C xen defconfig > fi > > +# arm32 only cross-compiles the hypervisor > +if [[ "${XEN_TARGET_ARCH}" = "arm32" ]]; then > + make -j$(nproc) xen > + cp xen/.config xen-config > + mkdir binaries > + cp xen/xen binaries/xen > + exit 0 > +fi You will have to rebase on top of 893103e286ac1c50 at which point you have an option to do hypervisor only builds already (hypervisor_only). Thanks, Roger.
© 2016 - 2024 Red Hat, Inc.