Message ID | 20210213013813.30114-1-sstabellini@kernel.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | automation: add arm32 cross-build tests for Xen | expand |
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.
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")
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