Commit 27ebeda0 authored by Alex Bennée's avatar Alex Bennée
Browse files

tests/docker: add a linux-user testing focused image



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: default avatarAlex Bennée <alex.bennee@linaro.org>
Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200701135652.1366-33-alex.bennee@linaro.org>
parent 634ef789
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -64,6 +64,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
+1 −0
Original line number Diff line number Diff line
@@ -134,6 +134,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
+53 −0
Original line number Diff line number Diff line
#
# 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