On Thursday 1. September 2016 10.10.15 Ludovic Courtès wrote: > Paul Boddie <p...@boddie.org.uk> 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