[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Cross-building GuixSD (and maybe using pre-built toolchains)

From: Ludovic Courtès
Subject: Re: Cross-building GuixSD (and maybe using pre-built toolchains)
Date: Thu, 01 Sep 2016 10:10:15 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Paul Boddie <address@hidden> skribis:

> On Wednesday 31. August 2016 22.04.35 Ludovic Courtès wrote:


>> > I noticed that Arch Linux and its relative Parabola GNU/Linux support the
>> > target machine using distcc as a client and having distcc servers cross-
>> > compile code for the target architecture. That seems to require the
>> > coordinating host to be running Arch/Parabola, which then means that some
>> > bootstrapping needs to be done already. Could a similar thing be done
>> > with GuixSD?
>> Yes, using offloading:
>> If your master node is x86_64 and its machines.scm lists a mips64el
>> machine as in the example above, then “guix build foo -s mips64el-linux”
>> automatically offloads to that mips machine.  (This is the mechanism our
>> build farm uses.)
> But this seems like the opposite of the approach in Arch/Parabola: there, the 
> target machine (mips64el) coordinates the build, with the farm machines 
> (x86_64) cross-compiling the sources. The benefit is that architectures with 
> less powerful hardware can have their packages built for them, but this would 
> presumably be contrary to the principles employed by Guix, where native 
> builds 
> are mandatory for viability and, I guess, reproducibility reasons.

I should mention that native builds are also subject to offloading.  So
if your main machine is x86_64 and has a machines.scm file that lists
other x86_64 machines, then native builds can be offloaded to them.

If you cross-compile from x86_64, it’s a native build that can be
offloaded to another x86_64 machine.

Hope this clarifies things!


reply via email to

[Prev in Thread] Current Thread [Next in Thread]