help-guix
[Top][All Lists]
Advanced

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

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


From: Paul Boddie
Subject: Re: Cross-building GuixSD (and maybe using pre-built toolchains)
Date: Thu, 1 Sep 2016 17:51:41 +0200
User-agent: KMail/1.13.7 (Linux/3.2.0-4-486; KDE/4.8.4; i686; ; )

On Thursday 1. September 2016 10.10.15 Ludovic Courtès wrote:
> Paul Boddie <address@hidden> skribis:
> > 

[Offloading]

> > 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!

Perhaps. Here come the stupid questions: ;-)

When you write "cross-compile from x86_64" do you mean run a cross-compiler on 
an x86_64 host that targets another architecture? (I'm guessing "yes".)

From previous questions, it appears that any compiler must have been built 
specifically for Guix to use (and cannot be those those pre-built toolchains 
provided by, say, Debian), so would these cross-compilers be the ones normally 
used to generate the "bootstrap binaries" (that would normally be used to then 
build packages on the target system)?

Or do I first bootstrap Guix on my (x86_64, in this example) "build system", 
then generate special cross-compilers for my target architecture (that are 
then exposed via offloading)?

And can I provide a foreign architecture build daemon on the same machine as 
the one performing the build?

Sorry if this is all obvious or if I'm not assuming that what is possible is 
actually possible! I'm used to discovering limitations with build systems. (To 
me it is remarkable that given all the portable things like shell scripts that 
do a lot of the lifting in build processes, many build systems have an 
unreasonable affinity to the build host's architecture.)

Thanks for all the help!

Paul



reply via email to

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