From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Boddie Subject: Re: Cross-building GuixSD (and maybe using pre-built toolchains) Date: Thu, 1 Sep 2016 17:51:41 +0200 Message-ID: <201609011751.42108.paul@boddie.org.uk> References: <201608302326.38349.paul@boddie.org.uk> <201608312349.49957.paul@boddie.org.uk> <87shtkujko.fsf@gnu.org> 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]:39588) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bfUHW-0002R9-2t for help-guix@gnu.org; Thu, 01 Sep 2016 11:52:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bfUHP-0002ht-Un for help-guix@gnu.org; Thu, 01 Sep 2016 11:51:56 -0400 In-Reply-To: <87shtkujko.fsf@gnu.org> 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: help-guix@gnu.org On Thursday 1. September 2016 10.10.15 Ludovic Court=C3=A8s wrote: > Paul Boddie skribis: > >=20 [Offloading] > > But this seems like the opposite of the approach in Arch/Parabola: ther= e, > > 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. >=20 > 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. >=20 > If you cross-compile from x86_64, it=E2=80=99s a native build that can be > offloaded to another x86_64 machine. >=20 > Hope this clarifies things! Perhaps. Here come the stupid questions: ;-) When you write "cross-compile from x86_64" do you mean run a cross-compiler= on=20 an x86_64 host that targets another architecture? (I'm guessing "yes".) =46rom previous questions, it appears that any compiler must have been buil= t=20 specifically for Guix to use (and cannot be those those pre-built toolchain= s=20 provided by, say, Debian), so would these cross-compilers be the ones norma= lly=20 used to generate the "bootstrap binaries" (that would normally be used to t= hen=20 build packages on the target system)? Or do I first bootstrap Guix on my (x86_64, in this example) "build system"= ,=20 then generate special cross-compilers for my target architecture (that are= =20 then exposed via offloading)? And can I provide a foreign architecture build daemon on the same machine a= s=20 the one performing the build? Sorry if this is all obvious or if I'm not assuming that what is possible i= s=20 actually possible! I'm used to discovering limitations with build systems. = (To=20 me it is remarkable that given all the portable things like shell scripts t= hat=20 do a lot of the lifting in build processes, many build systems have an=20 unreasonable affinity to the build host's architecture.) Thanks for all the help! Paul