Subject: Re: bug#21610: FreeBSD compilation problem (errno_location)

From: Mark H Weaver <[email-masked]>
Date: Sun, 04 Oct 2015 14:02:43 -0400

[email-masked] (Ludovic Courtès) writes:

> Janus Troelsen <[email-masked]> skribis:
>
>> I know FreeBSD is not officially supported, but I don't see why it shouldn't be? Many GNU tools work on FreeBSD.
>
> Guix depends on the availability of the GNU C Library, with either the
> Linux-libre kernel or the Hurd.  So it cannot be used at all on FreeBSD.

I'd like to expand on this.  When Guix builds packages, the container in
which software is built does not use any software or libraries from the
host system at all.  The only part of the host system that we use,
implicitly, is the kernel.

Guix is bootstrapped in a manner analogous to Cross [GNU/]Linux from
Scratch, starting from statically "bootstrap binaries" that we provide
for each supported architecture/kernel combination.  At present, we
provide bootstrap binaries for x86_64, i686, mips64el, and armhf on top
of Linux (the kernel), and soon we will support the Hurd as well.

Unless the FreeBSD kernel is able to emulate Linux (the kernel)
sufficiently well to run our binaries for GNU/Linux unmodified, and to
convince 'configure' scripts and other build systems that the kernel is
Linux, using Guix on top of FreeBSD will involve porting it, as
described in section 7.8 (Porting to a New Platform) in the Guix manual.

As Ludovic pointed out, such a port would still need to use GNU libc,
and would use all of the GNU userland on top, so only the kernel from
FreeBSD would be used.

    Regards,
      Mark