Alas illumos doesn't define s6_addr8, s6_addr16, and s6_addr32 outside the kernel. But netinet/in.h gives an idea how to provide the definitions. --- swipl-9.2.9/packages/clib/nonblockio.c.orig +++ swipl-9.2.9/packages/clib/nonblockio.c @@ -182,6 +182,8 @@ #define s6_addr16 s6_words #elif defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) #define s6_addr16 __u6_addr.__u6_addr16 +#elif defined(__illumos__) +#define s6_addr16 _S6_un._S6_u16 #endif #endif