diff mbox series

[RFC,1/3] tests/docker: add debian-lm32-cross image

Message ID 20190131215611.29341-2-michael@walle.cc (mailing list archive)
State New, archived
Headers show
Series lm32: convert to new common tcg infrastructure | expand

Commit Message

Michael Walle Jan. 31, 2019, 9:56 p.m. UTC
Unfortunately, there is no debian package for the lm32 toolchain. To
keep the build times short, only build the binutils from scratch.

Signed-off-by: Michael Walle <michael@walle.cc>
---
 tests/docker/Makefile.include                     |  5 ++--
 tests/docker/dockerfiles/debian-lm32-cross.docker | 31 +++++++++++++++++++++++
 2 files changed, 34 insertions(+), 2 deletions(-)
 create mode 100644 tests/docker/dockerfiles/debian-lm32-cross.docker

Comments

Alex Bennée Feb. 1, 2019, 5:28 p.m. UTC | #1
Michael Walle <michael@walle.cc> writes:

> Unfortunately, there is no debian package for the lm32 toolchain. To
> keep the build times short, only build the binutils from scratch.
>
> Signed-off-by: Michael Walle <michael@walle.cc>
> ---
>  tests/docker/Makefile.include                     |  5 ++--
>  tests/docker/dockerfiles/debian-lm32-cross.docker | 31 +++++++++++++++++++++++
>  2 files changed, 34 insertions(+), 2 deletions(-)
>  create mode 100644 tests/docker/dockerfiles/debian-lm32-cross.docker
>
> diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
> index 0b9c8828e1..055bfc594d 100644
> --- a/tests/docker/Makefile.include
> +++ b/tests/docker/Makefile.include
> @@ -90,6 +90,7 @@ docker-image-debian-amd64: docker-image-debian9
>  docker-image-debian-armel-cross: docker-image-debian9
>  docker-image-debian-armhf-cross: docker-image-debian9
>  docker-image-debian-arm64-cross: docker-image-debian9
> +docker-image-debian-lm32-cross: docker-image-debian9
>  docker-image-debian-mips-cross: docker-image-debian9
>  docker-image-debian-mipsel-cross: docker-image-debian9
>  docker-image-debian-mips64el-cross: docker-image-debian9
> @@ -114,8 +115,8 @@ docker-image-tricore-cross: docker-image-debian9
>  # These images may be good enough for building tests but not for test builds
>  DOCKER_PARTIAL_IMAGES += debian-alpha-cross debian-hppa-cross debian-m68k-cross debian-sh4-cross
>  DOCKER_PARTIAL_IMAGES += debian-sparc64-cross debian-mips64-cross debian-riscv64-cross
> -DOCKER_PARTIAL_IMAGES += debian-tricore-cross debian-powerpc-cross fedora-i386-cross
> -DOCKER_PARTIAL_IMAGES += fedora-cris-cross
> +DOCKER_PARTIAL_IMAGES += debian-tricore-cross debian-powerpc-cross debian-lm32-cross
> +DOCKER_PARTIAL_IMAGES += fedora-i386-cross fedora-cris-cross

I've been looking at this for the linux-user stuff. I suspect we want
another class of images (DOCKER_SRC_BUILD_IMAGES?) so we can decide if
they get built. It's probably time we start moving the dockerfiles into
appropriate subdirs rather than treating them all as one monolithic set.

>
>  # Rules for building linux-user powered images
>  #
> diff --git a/tests/docker/dockerfiles/debian-lm32-cross.docker b/tests/docker/dockerfiles/debian-lm32-cross.docker
> new file mode 100644
> index 0000000000..1114d8ac6d
> --- /dev/null
> +++ b/tests/docker/dockerfiles/debian-lm32-cross.docker
> @@ -0,0 +1,31 @@
> +#
> +# Docker LatticeMico32 cross-compiler target
> +#
> +# This docker target builds on the debian Stretch base image.
> +#
> +# Copyright (c) 2019 Michael Walle
> +# Copyright (c) 2018 Philippe Mathieu-Daudé
> +#
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +#
> +FROM qemu:debian9

Have you looked at:

  https://docs.docker.com/develop/develop-images/multistage-build/

It would be nice if we could split the build from the final artefact
image. That way the interim can be thrown away after a successful build.

> +
> +MAINTAINER Michael Walle <michael@walle.cc>
> +
> +RUN apt-get update && \
> +    DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata
> +RUN DEBIAN_FRONTEND=noninteractive eatmydata \
> +    apt-get install -y --no-install-recommends \
> +        wget
> +
> +ENV BINUTILS_VERSION 2.31
> +
> +RUN wget http://ftp.gnu.org/gnu/binutils/binutils-$BINUTILS_VERSION.tar.xz && \
> +    tar -xJf binutils-$BINUTILS_VERSION.tar.xz -C /usr/src && \
> +    cd /usr/src/binutils-$BINUTILS_VERSION && \
> +    ./configure --prefix=/usr --disable-nls --target=lm32-elf && \
> +    make && make install && \
> +    rm -rf /usr/src/binutils-$BINUTILS_VERSION
> +
> +# This image isn't designed for building QEMU but building tests
> +ENV QEMU_CONFIGURE_OPTS --disable-system --disable-user


--
Alex Bennée
diff mbox series

Patch

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 0b9c8828e1..055bfc594d 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -90,6 +90,7 @@  docker-image-debian-amd64: docker-image-debian9
 docker-image-debian-armel-cross: docker-image-debian9
 docker-image-debian-armhf-cross: docker-image-debian9
 docker-image-debian-arm64-cross: docker-image-debian9
+docker-image-debian-lm32-cross: docker-image-debian9
 docker-image-debian-mips-cross: docker-image-debian9
 docker-image-debian-mipsel-cross: docker-image-debian9
 docker-image-debian-mips64el-cross: docker-image-debian9
@@ -114,8 +115,8 @@  docker-image-tricore-cross: docker-image-debian9
 # These images may be good enough for building tests but not for test builds
 DOCKER_PARTIAL_IMAGES += debian-alpha-cross debian-hppa-cross debian-m68k-cross debian-sh4-cross
 DOCKER_PARTIAL_IMAGES += debian-sparc64-cross debian-mips64-cross debian-riscv64-cross
-DOCKER_PARTIAL_IMAGES += debian-tricore-cross debian-powerpc-cross fedora-i386-cross
-DOCKER_PARTIAL_IMAGES += fedora-cris-cross
+DOCKER_PARTIAL_IMAGES += debian-tricore-cross debian-powerpc-cross debian-lm32-cross
+DOCKER_PARTIAL_IMAGES += fedora-i386-cross fedora-cris-cross
 
 # Rules for building linux-user powered images
 #
diff --git a/tests/docker/dockerfiles/debian-lm32-cross.docker b/tests/docker/dockerfiles/debian-lm32-cross.docker
new file mode 100644
index 0000000000..1114d8ac6d
--- /dev/null
+++ b/tests/docker/dockerfiles/debian-lm32-cross.docker
@@ -0,0 +1,31 @@ 
+#
+# Docker LatticeMico32 cross-compiler target
+#
+# This docker target builds on the debian Stretch base image.
+#
+# Copyright (c) 2019 Michael Walle
+# Copyright (c) 2018 Philippe Mathieu-Daudé
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+FROM qemu:debian9
+
+MAINTAINER Michael Walle <michael@walle.cc>
+
+RUN apt-get update && \
+    DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get install -y --no-install-recommends \
+        wget
+
+ENV BINUTILS_VERSION 2.31
+
+RUN wget http://ftp.gnu.org/gnu/binutils/binutils-$BINUTILS_VERSION.tar.xz && \
+    tar -xJf binutils-$BINUTILS_VERSION.tar.xz -C /usr/src && \
+    cd /usr/src/binutils-$BINUTILS_VERSION && \
+    ./configure --prefix=/usr --disable-nls --target=lm32-elf && \
+    make && make install && \
+    rm -rf /usr/src/binutils-$BINUTILS_VERSION
+
+# This image isn't designed for building QEMU but building tests
+ENV QEMU_CONFIGURE_OPTS --disable-system --disable-user