From: "Alex Bennée" <alex.bennee@linaro.org>
To: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
Cc: famz@redhat.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v4 2/4] new: debian docker targets for cross-compiling
Date: Mon, 20 Feb 2017 09:02:45 +0000 [thread overview]
Message-ID: <87ino5w7yi.fsf@linaro.org> (raw)
In-Reply-To: <9c369896-91c1-8479-40c6-2eb12ff3e40e@amsat.org>
Philippe Mathieu-Daudé <f4bug@amsat.org> writes:
> On 02/16/2017 09:34 AM, Alex Bennée wrote:
>> This provides a basic Debian install with access to the emdebian cross
>> compilers. The debian-armhf-cross and debian-arm64-cross targets build
>> on the basic Debian image to allow cross compiling to those targets.
>>
>> A new environment variable (QEMU_CONFIGURE_OPTS) is set as part of the
>> docker container and passed to the build to specify the
>> --cross-prefix. The user still calls the build in the usual way, for
>> example:
>>
>> make docker-test-build@debian-arm64-cross \
>> TARGET_LIST="aarch64-softmmu,aarch64-linux-user"
>>
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>>
>> ---
>> v2
>> - add clang (keep shippable happy)
>> - rm adduser code (done direct now)
>> - add aptitude (useful for debugging package clashes)
>> v3
>> - split into debian, debian-armhf-cross and debian-aarch64-cross
>> v4
>> - Add QEMU_CONFIGURE_OPTS
>> ---
>> tests/docker/Makefile.include | 4 ++++
>> tests/docker/common.rc | 2 +-
>> tests/docker/dockerfiles/debian-arm64-cross.docker | 15 +++++++++++++
>> tests/docker/dockerfiles/debian-armhf-cross.docker | 15 +++++++++++++
>> tests/docker/dockerfiles/debian.docker | 25 ++++++++++++++++++++++
>> 5 files changed, 60 insertions(+), 1 deletion(-)
>> create mode 100644 tests/docker/dockerfiles/debian-arm64-cross.docker
>> create mode 100644 tests/docker/dockerfiles/debian-armhf-cross.docker
>> create mode 100644 tests/docker/dockerfiles/debian.docker
>>
>> diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
>> index 4778b27ca8..84bdcc944a 100644
>> --- a/tests/docker/Makefile.include
>> +++ b/tests/docker/Makefile.include
>> @@ -54,6 +54,10 @@ docker-image-%: $(DOCKER_FILES_DIR)/%.docker
>> $(if $(EXECUTABLE),--include-executable=$(EXECUTABLE)),\
>> "BUILD","$*")
>>
>> +# Enforce dependancies for composite images
>> +docker-image-debian-armhf-cross: docker-image-debian
>> +docker-image-debian-arm64-cross: docker-image-debian
>> +
>> # Expand all the pre-requistes for each docker image and test combination
>> $(foreach i,$(DOCKER_IMAGES), \
>> $(foreach t,$(DOCKER_TESTS) $(DOCKER_TOOLS), \
>> diff --git a/tests/docker/common.rc b/tests/docker/common.rc
>> index 21657e87c6..6865689bb5 100755
>> --- a/tests/docker/common.rc
>> +++ b/tests/docker/common.rc
>> @@ -29,7 +29,7 @@ build_qemu()
>> config_opts="--enable-werror \
>> ${TARGET_LIST:+--target-list=${TARGET_LIST}} \
>> --prefix=$PWD/install \
>> - $EXTRA_CONFIGURE_OPTS \
>> + $QEMU_CONFIGURE_OPTS $EXTRA_CONFIGURE_OPTS \
>> $@"
>> echo "Configure options:"
>> echo $config_opts
>> diff --git a/tests/docker/dockerfiles/debian-arm64-cross.docker b/tests/docker/dockerfiles/debian-arm64-cross.docker
>> new file mode 100644
>> index 0000000000..ce90da943f
>> --- /dev/null
>> +++ b/tests/docker/dockerfiles/debian-arm64-cross.docker
>> @@ -0,0 +1,15 @@
>> +#
>> +# Docker arm64 cross-compiler target
>> +#
>> +# This docker target builds on the base debian image.
>> +#
>> +FROM qemu:debian
>> +
>> +# Add the foreign architecture we want and install dependacies
>
> typo "dependencies"
Fixed, thanks.
>
> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>
>> +RUN dpkg --add-architecture arm64
>> +RUN apt update
>> +RUN apt install -yy crossbuild-essential-arm64
>> +RUN apt-get build-dep -yy -a arm64 qemu
>> +
>> +# Specify the cross prefix for this image (see tests/docker/common.rc)
>> +ENV QEMU_CONFIGURE_OPTS --cross-prefix=aarch64-linux-gnu-
>> diff --git a/tests/docker/dockerfiles/debian-armhf-cross.docker b/tests/docker/dockerfiles/debian-armhf-cross.docker
>> new file mode 100644
>> index 0000000000..e0f81a556d
>> --- /dev/null
>> +++ b/tests/docker/dockerfiles/debian-armhf-cross.docker
>> @@ -0,0 +1,15 @@
>> +#
>> +# Docker armhf cross-compiler target
>> +#
>> +# This docker target builds on the base debian image.
>> +#
>> +FROM qemu:debian
>> +
>> +# Add the foreign architecture we want and install dependacies
>> +RUN dpkg --add-architecture armhf
>> +RUN apt update
>> +RUN apt install -yy crossbuild-essential-armhf
>> +RUN apt-get build-dep -yy -a armhf qemu
>> +
>> +# Specify the cross prefix for this image (see tests/docker/common.rc)
>> +ENV QEMU_CONFIGURE_OPTS --cross-prefix=arm-linux-gnueabihf-
>> diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
>> new file mode 100644
>> index 0000000000..52bd79938e
>> --- /dev/null
>> +++ b/tests/docker/dockerfiles/debian.docker
>> @@ -0,0 +1,25 @@
>> +#
>> +# 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.
>> +#
>> +# On its own you can't build much but the docker-foo-cross targets
>> +# build on top of the base debian image.
>> +#
>> +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
>> +
>> +# Install common build utilities
>> +RUN apt update
>> +RUN apt install -yy build-essential clang
>>
--
Alex Bennée
next prev parent reply other threads:[~2017-02-20 9:02 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-16 12:34 [Qemu-devel] [PATCH v4 0/4] Docker cross-compile targets and user build support Alex Bennée
2017-02-16 12:34 ` [Qemu-devel] [PATCH v4 1/4] tests/docker: add basic user mapping support Alex Bennée
2017-02-16 13:15 ` Fam Zheng
2017-02-19 5:24 ` Philippe Mathieu-Daudé
2017-02-20 9:01 ` Alex Bennée
2017-02-16 12:34 ` [Qemu-devel] [PATCH v4 2/4] new: debian docker targets for cross-compiling Alex Bennée
2017-02-16 13:19 ` Fam Zheng
2017-02-19 4:34 ` Philippe Mathieu-Daudé
2017-02-20 9:02 ` Alex Bennée [this message]
2017-02-16 12:34 ` [Qemu-devel] [PATCH v4 3/4] .shippable.yml: new CI provider Alex Bennée
2017-02-16 13:31 ` Fam Zheng
2017-02-16 19:40 ` Alex Bennée
2017-02-16 12:34 ` [Qemu-devel] [PATCH v4 4/4] MAINTAINERS: merge Build and test automation with Docker tests Alex Bennée
2017-02-16 13:23 ` Fam Zheng
2017-02-16 13:36 ` [Qemu-devel] [PATCH v4 0/4] Docker cross-compile targets and user build support Fam Zheng
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87ino5w7yi.fsf@linaro.org \
--to=alex.bennee@linaro.org \
--cc=f4bug@amsat.org \
--cc=famz@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.