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 |
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 --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
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