On 6/26/20 8:13 PM, Alex Bennée wrote: > We happily use all the cross images for both cross-building QEMU as > well as building the linux-user tests. However calling docker from > within docker seems not to work. As we can build in Debian anyway why > not include an image that has all the compilers available for > non-docker invocation. > > Signed-off-by: Alex Bennée <alex.ben...@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> > --- > .gitlab-ci.d/containers.yml | 7 +++ > tests/docker/Makefile.include | 1 + > .../dockerfiles/debian-all-test-cross.docker | 53 +++++++++++++++++++ > 3 files changed, 61 insertions(+) > create mode 100644 tests/docker/dockerfiles/debian-all-test-cross.docker > > diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-ci.d/containers.yml > index ba9c24e98f1..20b2fb1de5d 100644 > --- a/.gitlab-ci.d/containers.yml > +++ b/.gitlab-ci.d/containers.yml > @@ -66,6 +66,13 @@ amd64-debian-cross-container: > variables: > NAME: debian-amd64-cross > > +amd64-debian-user-cross-container: > + <<: *container_job_definition > + stage: containers-layer2 > + needs: ['amd64-debian10-container'] > + variables: > + NAME: debian-all-test-cross > + > amd64-debian-container: > <<: *container_job_definition > stage: containers-layer2 > diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include > index 8139e8467d4..079ceb6ff33 100644 > --- a/tests/docker/Makefile.include > +++ b/tests/docker/Makefile.include > @@ -133,6 +133,7 @@ docker-image-travis: NOUSER=1 > > # Specialist build images, sometimes very limited tools > docker-image-debian-tricore-cross: docker-image-debian9 > +docker-image-debian-all-test-cross: docker-image-debian10 > docker-image-debian-arm64-test-cross: docker-image-debian11 > > # These images may be good enough for building tests but not for test builds > diff --git a/tests/docker/dockerfiles/debian-all-test-cross.docker > b/tests/docker/dockerfiles/debian-all-test-cross.docker > new file mode 100644 > index 00000000000..dedcea58b46 > --- /dev/null > +++ b/tests/docker/dockerfiles/debian-all-test-cross.docker > @@ -0,0 +1,53 @@ > +# > +# Docker all cross-compiler target (tests only) > +# > +# While the normal cross builds take care to setup proper multiarch > +# build environments which can cross build QEMU this just installs the > +# basic compilers for as many targets as possible. We shall use this > +# to build and run linux-user tests on GitLab > +# > +FROM qemu/debian10 > + > +# What we need to build QEMU itself > +RUN apt update && \ > + DEBIAN_FRONTEND=noninteractive eatmydata \ > + apt build-dep -yy qemu > + > +# Add the foreign architecture we want and install dependencies > +RUN DEBIAN_FRONTEND=noninteractive eatmydata \ > + apt install -y --no-install-recommends \ > + gcc-aarch64-linux-gnu \ > + libc6-dev-arm64-cross \ > + gcc-alpha-linux-gnu \ > + libc6.1-dev-alpha-cross \ > + gcc-arm-linux-gnueabihf \ > + libc6-dev-armhf-cross \ > + gcc-hppa-linux-gnu \ > + libc6-dev-hppa-cross \ > + gcc-m68k-linux-gnu \ > + libc6-dev-m68k-cross \ > + gcc-mips-linux-gnu \ > + libc6-dev-mips-cross \ > + gcc-mips64-linux-gnuabi64 \ > + libc6-dev-mips64-cross \ > + gcc-mips64el-linux-gnuabi64 \ > + libc6-dev-mips64el-cross \ > + gcc-mipsel-linux-gnu \ > + libc6-dev-mipsel-cross \ > + gcc-powerpc-linux-gnu \ > + libc6-dev-powerpc-cross \ > + gcc-powerpc64-linux-gnu \ > + libc6-dev-ppc64-cross \ > + gcc-powerpc64le-linux-gnu \ > + libc6-dev-ppc64el-cross \ > + gcc-riscv64-linux-gnu \ > + libc6-dev-riscv64-cross \ > + gcc-s390x-linux-gnu \ > + libc6-dev-s390x-cross \ > + gcc-sh4-linux-gnu \ > + libc6-dev-sh4-cross \ > + gcc-sparc64-linux-gnu \ > + libc6-dev-sparc64-cross > + > +ENV QEMU_CONFIGURE_OPTS --disable-system --disable-docs --disable-tools > +ENV DEF_TARGET_LIST > aarch64-linux-user,alpha-linux-user,arm-linux-user,hppa-linux-user,i386-linux-user,m68k-linux-user,mips-linux-user,mips64-linux-user,mips64el-linux-user,mipsel-linux-user,ppc-linux-user,ppc64-linux-user,ppc64le-linux-user,riscv64-linux-user,s390x-linux-user,sh4-linux-user,sparc64-linux-user >