Hi, For s6 latest release 2.9.1.0, I fail to build it on GNU/Hurd.
The log is at https://buildd.debian.org/status/fetch.php?pkg=s6&arch=hurd-i386&ver=2.9.1.0-1&stamp=1584722395&raw=0 In file included from /usr/include/i386-gnu/skalibs/bytestr.h:13, from src/supervision/s6-notifyoncheck.c:12: /usr/include/i386-gnu/bits/errno.h:137:3: error: redeclaration of enumerator ‘EPROTOTYPE’ 137 | EPROTO = 0x40000074, /* Protocol error */ | ^~~~~~ In file included from /usr/include/errno.h:28, from /usr/include/i386-gnu/skalibs/ip46.h:8, from src/include/s6/accessrules.h:9, from src/include/s6/s6.h:10, from src/supervision/s6-notifyoncheck.c:20: /usr/include/i386-gnu/bits/errno.h:76:3: note: previous definition of ‘EPROTOTYPE’ was here 76 | EPROTOTYPE = 0x40000029, /* Protocol wrong type for socket */ | ^~~~~~~~~~ The errno.h on hurd has an enum[1], and skalibs/posixishard.h redefines EPROTO to EPROTOTYPE. One possible workaround is to move the header order. --- s6-2.9.1.0.orig/src/supervision/s6-notifyoncheck.c +++ s6-2.9.1.0/src/supervision/s6-notifyoncheck.c @@ -9,7 +9,6 @@ #include <skalibs/types.h> #include <skalibs/allreadwrite.h> -#include <skalibs/bytestr.h> #include <skalibs/sgetopt.h> #include <skalibs/strerr2.h> #include <skalibs/tai.h> @@ -19,6 +18,8 @@ #include <s6/s6.h> +#include <skalibs/bytestr.h> + But I think there could be a better way to fix this. [1] https://github.com/bminor/glibc/blob/master/sysdeps/mach/hurd/bits/errno.h#L26 -- Shengjing Zhu