[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 5/7] new debian-multiarch-cross.docker: a cro
From: |
Fam Zheng |
Subject: |
Re: [Qemu-devel] [PATCH v2 5/7] new debian-multiarch-cross.docker: a cross-compiling docker guest |
Date: |
Thu, 26 Jan 2017 18:53:46 +0800 |
User-agent: |
Mutt/1.7.1 (2016-10-04) |
On Tue, 01/24 14:33, Alex Bennée wrote:
> This provides a basic Debian install with access to the emdebian cross
> compilers for armhf, arm64, mipsel and ppc64el. On its own it provides
> the basic cross build essentials for building any of those
> architectures. More complex cross-compilations would need to install
> library dependencies on top of this image.
>
> An example use:
>
> docker run --rm -it \
> -v /home/alex/lsrc/qemu/qemu.git/:/home/alex/lsrc/qemu/qemu.git/ \
> --user=alex:alex \
> -w /home/alex/lsrc/qemu/qemu.git/arm-linux-user/tests \
> -e CROSS_CC="arm-linux-gnueabihf-gcc" \
> debian:cross make -f ../../tests/tcg/arm/Makefile
>
> Signed-off-by: Alex Bennée <address@hidden>
>
> ---
> v2
> - add clang (keep shippable happy)
> - rm adduser code (done direct now)
> - add aptitude (useful for debugging package clashes)
> ---
> .../dockerfiles/debian-multiarch-cross.docker | 45
> ++++++++++++++++++++++
> 1 file changed, 45 insertions(+)
> create mode 100644 tests/docker/dockerfiles/debian-multiarch-cross.docker
>
> diff --git a/tests/docker/dockerfiles/debian-multiarch-cross.docker
> b/tests/docker/dockerfiles/debian-multiarch-cross.docker
> new file mode 100644
> index 0000000000..749fdf07e1
> --- /dev/null
> +++ b/tests/docker/dockerfiles/debian-multiarch-cross.docker
> @@ -0,0 +1,45 @@
> +#
> +# Docker multiarch cross-compiler target
> +#
> +# This docker target is builds on Debian and Emdebian's cross compiler
> targets
> +# to build distro with a selection of cross compilers for building test
> binaries.
> +#
> +# This does not include the build dependancies for QEMU as there are
> +# so many there are unresolvable clashes.
> +#
> +FROM debian:stable-slim
> +
> +# Setup some basic tools we need
> +RUN apt update
> +RUN apt install -yy curl aptitude
> +
> +# Setup Emdebian
> +RUN echo "deb http://emdebian.org/tools/debian/ jessie main" >>
> /etc/apt/sources.list
> +RUN curl http://emdebian.org/tools/debian/emdebian-toolchain-archive.key |
> apt-key add -
> +
> +# Duplicate deb line as deb-src
> +RUN cat /etc/apt/sources.list | sed "s/deb/deb-src/" >> /etc/apt/sources.list
> +
> +# Add the foriegn architectures we want
> +RUN dpkg --add-architecture armhf
> +RUN dpkg --add-architecture arm64
> +RUN dpkg --add-architecture mipsel
> +RUN dpkg --add-architecture ppc64el
> +
> +#FIXME: Currently these cause clashes due to multi-arch being an ongoig
> process
"ongoing"?
> +#RUN dpkg --add-architecture mips
> +#RUN dpkg --add-architecture powerpc
> +
> +# Final update
> +RUN apt update
> +
> +# Install the crossbuild essential packages
> +# FIXME: crossbuild-essential-powerpc has a clash with '/lib/ld.so.1'
> +RUN apt install -yy clang crossbuild-essential-arm64
> crossbuild-essential-armhf crossbuild-essential-mipsel
> crossbuild-essential-ppc64el
> +
> +# Before you can actually build something you need to install its build
> dependancies.
> +# This is best done in a child container as architecture specific -dev
> packages have a habit of clashing with
> +# each other because not everything is fully complient with the multiarch
> specififcation.
"compliant"?
> +#
> +# To install the QEMU build dependacnies you need to run:
> +# RUN apt-get build-dep -yy -a armhf qemu
> --
> 2.11.0
>
Does this image work with our tests, such as "make
address@hidden"? If not let's put it into a different
folder okay?
Fam