Subject: Re: [bug#41074] [PATCH] gnu: qemu-minimal: Only build for the host's architecture.

From: Efraim Flashner <[email-masked]>
Date: Wed, 6 May 2020 10:16:03 +0300

On Tue, May 05, 2020 at 12:10:55PM -0400, Leo Famulari wrote:
> On Mon, May 04, 2020 at 01:25:15PM +0300, Efraim Flashner wrote:
> > * gnu/packages/virtualization.scm (qemu-minimal)[arguments]: Adjust
> > configure-flags so that each architecture only builds for its native
> > architectures.
> > [synopsis]: Adjust to clarify it's only for the host's architecture.
> 
> I admit I don't understand the impact or motivation of this change. What
> will be different from what currently happens?

Currently every architecutre building qemu-minimal builds targets for
each of the architectures we support, x86_64, i686, mips64el, armhf,
aarch64. With this change armhf only builds for armhf, x86_64 builds for
x86_64 and i686, etc. Looking through the code with a 'git grep
qemu-minimal', qemu-minimal is only used for tests for grub and system
tests and for (gnu system vm) and on core-updates a bit more similar
places. Basically it's only used for running tests and creating VMs,
which means it only needs to target the host architecture. Every other
place where we provide support for other architectures, like the binfmt
service, uses full qemu by default.

Overall it doesn't save as much space as I'd hoped, each target
architecture only costs about 16MiB, but it does save a fair amount of
time building each target architecture. Currently qemu-minimal is
303MiB, dropping the 3 architectures for x86_64 would drop it down to
~258MiB. Some more work would need to be done to trim the share/qemu
folder to only have the relevant bits. Currently there's about 200MiB of
edk2 stuff for arm/aarch64.

-- 
Efraim Flashner   <[email-masked]>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted