~ruther/guix-local

1ee291139fcb05335961562cf1baa1aa632c2abf — Reepca Russelstein 1 year, 1 month ago 53b2351
daemon: Fix build of spawn.cc for non-Linux and newer GCC.

* nix/libutil/spawn.cc: Include <fcntl.h> and <cstdint>.
(cloneChild): Wrap body in #if CLONE_ENABLED.

Change-Id: I0be7e6dbe80ac2f7022793149472270a4e49d23c
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
1 files changed, 7 insertions(+), 0 deletions(-)

M nix/libutil/spawn.cc
M nix/libutil/spawn.cc => nix/libutil/spawn.cc +7 -0
@@ 26,8 26,10 @@
#include <grp.h>
#include <limits.h>
#include <sys/wait.h>
#include <fcntl.h>
#include <cstring>
#include <cstdlib>
#include <cstdint>

#if HAVE_SYS_MOUNT_H
#include <sys/mount.h>


@@ 852,6 854,7 @@ int runChildSetupEntry(void *data)

int cloneChild(CloneSpawnContext & ctx)
{
#if CLONE_ENABLED
    char stack[32 * 1024];
    /* Ensure proper alignment on the stack.  On aarch64, it has to be 16
       bytes.  */


@@ 860,6 863,10 @@ int cloneChild(CloneSpawnContext & ctx)
    if(ret == -1)
        throw SysError("clone");
    return ret;
#else
    throw Error("clone not supported on this platform");
#endif
}


}