From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: Cross-building GuixSD (and maybe using pre-built toolchains) Date: Thu, 01 Sep 2016 10:10:15 +0200 Message-ID: <87shtkujko.fsf@gnu.org> References: <201608302326.38349.paul@boddie.org.uk> <87inugn1rg.fsf@gnu.org> <201608312349.49957.paul@boddie.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:38243) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bfN4s-0006Yy-E6 for help-guix@gnu.org; Thu, 01 Sep 2016 04:10:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bfN4m-0005eN-CJ for help-guix@gnu.org; Thu, 01 Sep 2016 04:10:25 -0400 In-Reply-To: <201608312349.49957.paul@boddie.org.uk> (Paul Boddie's message of "Wed, 31 Aug 2016 23:49:49 +0200") List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org Sender: "Help-Guix" To: Paul Boddie Cc: help-guix@gnu.org Paul Boddie skribis: > On Wednesday 31. August 2016 22.04.35 Ludovic Court=C3=A8s 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 cros= s- >> > compile code for the target architecture. That seems to require the >> > coordinating host to be running Arch/Parabola, which then means that s= ome >> > bootstrapping needs to be done already. Could a similar thing be done >> > with GuixSD? >>=20 >> Yes, using offloading: >>=20 >>=20=20 >> https://www.gnu.org/software/guix/manual/html_node/Daemon-Offload-Setup.= html >>=20 >> If your master node is x86_64 and its machines.scm lists a mips64el >> machine as in the example above, then =E2=80=9Cguix build foo -s mips64e= l-linux=E2=80=9D >> automatically offloads to that mips machine. (This is the mechanism our >> hydra.gnu.org build farm uses.) > > But this seems like the opposite of the approach in Arch/Parabola: there,= the=20 > target machine (mips64el) coordinates the build, with the farm machines=20 > (x86_64) cross-compiling the sources. The benefit is that architectures w= ith=20 > less powerful hardware can have their packages built for them, but this w= ould=20 > presumably be contrary to the principles employed by Guix, where native b= uilds=20 > 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=E2=80=99s a native build that can be offloaded to another x86_64 machine. Hope this clarifies things! Ludo=E2=80=99.