qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: "Daniel P. Berrange" <berrange@redhat.com>
Cc: Fam Zheng <famz@redhat.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v6 2/8] tests/docker/docker.py: support --include-executable
Date: Tue, 19 Jul 2016 12:28:29 +0100	[thread overview]
Message-ID: <87fur5n9ya.fsf@linaro.org> (raw)
In-Reply-To: <20160719110645.GF21295@redhat.com>


Daniel P. Berrange <berrange@redhat.com> writes:

> On Tue, Jul 19, 2016 at 04:16:42PM +0800, Fam Zheng wrote:
>> From: Alex Bennée <alex.bennee@linaro.org>
>>
>> When passed the path to a binary we copy it and any linked libraries (if
>> it is dynamically linked) into the docker build context. These can then
>> be included by a dockerfile with the line:
>>
>>   # Copy all of context into container
>>   ADD . /
>>
>> This is mainly intended for setting up foreign architecture docker
>> images which use qemu-$arch to do cross-architecture linux-user
>> execution. It also relies on the host and guest file-system following
>> reasonable multi-arch layouts so the copied libraries don't clash with
>> the guest ones.
>
> So that's going to fail on anything other than Debian derivatives,
> since they'll be using /usr/lib or /usr/lib64 for all arches.

Well currently we only have a bootstrap for Debian anyway. However it
doesn't preclude you from using -static builds if you want.

Is Debian really the only multi-arch supporting distro out there? For
example I tested this in Arch as well. I'm fairly sure Gentoo is doing
it right too.

> IMHO it'd be better to simply reject use of qemu-$arch if it is
> not statically linked, rather than trying to deal with fact that
> libraries between host FS and foreign guest arch FS may clash.
>
> All distros except Fedora have long provided static qemu-$arch
> builds and I've recently improved Fedora to also provide static
> qemu$arch builds in F24 & rawhide.

That's great but we also want to test our built qemus. For example the
hot-path stuff has all been tested inside docker containers because it
makes the setting up of test cases a lot simpler and reproducible.

>
> So I don't see much compelling reason to support dynamically
> linked qemu-$arch binaries - it'll just cause pain & suffering
> with clashing libs on many distros.

I do, because I built with dynamic libs all the time for system
emulation. This way it is simple to build test other arches when I'm
making system emulation changes without having to constantly switch from
one build configuration to another.

I'll look into if there is any way we can do better with warnings on
non-multiarch systems?

--
Alex Bennée

  reply	other threads:[~2016-07-19 11:28 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-19  8:16 [Qemu-devel] [PATCH v6 0/8] docker: Support building qemu-user powered docker test images Fam Zheng
2016-07-19  8:16 ` [Qemu-devel] [PATCH v6 1/8] tests/docker/docker.py: docker_dir outside build Fam Zheng
2016-07-19  8:16 ` [Qemu-devel] [PATCH v6 2/8] tests/docker/docker.py: support --include-executable Fam Zheng
2016-07-19 11:06   ` Daniel P. Berrange
2016-07-19 11:28     ` Alex Bennée [this message]
2016-07-19  8:16 ` [Qemu-devel] [PATCH v6 3/8] tests/docker/docker.py: check and run .pre script Fam Zheng
2016-07-19  9:29   ` Alex Bennée
2016-07-19 11:44     ` Fam Zheng
2016-07-19  8:16 ` [Qemu-devel] [PATCH v6 4/8] tests/docker/dockerfiles: new debian-bootstrap.docker Fam Zheng
2016-07-19  9:00   ` Alex Bennée
2016-07-19  8:16 ` [Qemu-devel] [PATCH v6 5/8] tests/docker/docker.py: add update operation Fam Zheng
2016-07-19  8:16 ` [Qemu-devel] [PATCH v6 6/8] docker: More sensible run script Fam Zheng
2016-07-19  8:16 ` [Qemu-devel] [PATCH v6 7/8] docker: Fix exit code if $CMD failed Fam Zheng
2016-07-19  8:16 ` [Qemu-devel] [PATCH v6 8/8] docker: Don't start a container that doesn't exist Fam Zheng
2016-07-19 10:43   ` Alex Bennée
2016-07-19  9:58 ` [Qemu-devel] [PATCH v6 0/8] docker: Support building qemu-user powered docker test images Alex Bennée
2016-07-19 10:59 ` Alex Bennée

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=87fur5n9ya.fsf@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=berrange@redhat.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).