summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2019-02-19 16:23:24 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2019-02-19 16:23:24 +0000
commitff9333d473adb4ae1de2d9323394073793627823 (patch)
tree24780fca6ab8c57e5d8c5d98b61362af33bef4b8 /src
parent15eda3d33f9e1160d438d370acd442ef3dbba63f (diff)
downloadskalibs-ff9333d473adb4ae1de2d9323394073793627823.tar.xz
Add skalibs/posixishard.h
This will break things. It's a known issue. Patches to other packages will come later, to adapt them to the new API. To work around brokenness, there needs to be *two* different headers: 1. one to be used before including system headers, that maximizes visibility by enabling system-dependent feature test macros (that will be tested by system headers) 2. one to be used after including system headers, that performs preprocessor tests and defines. skalibs/nonposix.h is the first one. Previously, there was no second one, and the tests were scattered all over. There was a strnlen declaration in skalibs/posixplz.h (which serves a totally different function: declaring things that should be in POSIX, but *are not*, i.e. working around problems in the standard, instead of problems in systems failing to respect the standard), a build-time sysdep for error.h, #defines for MSG_NOSIGNAL, etc. etc. skalibs/posixishard.h now is the second one, and centralizes all the tests. As a result, the eproto sysdep is unnecessary and has been removed. skalibs/error.h is now a static header, it is not built anymore.
Diffstat (limited to 'src')
-rw-r--r--src/headers/error-addrinuse3
-rw-r--r--src/headers/error-already1
-rw-r--r--src/headers/error-footer2
-rw-r--r--src/headers/error-header9
-rw-r--r--src/headers/error-proto3
-rw-r--r--src/include/skalibs/bytestr.h2
-rw-r--r--src/include/skalibs/error.h18
-rw-r--r--src/include/skalibs/nonposix.h26
-rw-r--r--src/include/skalibs/posixishard.h30
-rw-r--r--src/include/skalibs/posixplz.h11
-rw-r--r--src/include/skalibs/skalibs.h7
-rw-r--r--src/include/skalibs/stddjb.h1
-rw-r--r--src/libposixplz/strnlen.c2
-rw-r--r--src/libstddjb/cdb_read.c3
-rw-r--r--src/libstddjb/ipc_bind.c4
-rw-r--r--src/libstddjb/ipc_connect.c4
-rw-r--r--src/libstddjb/ipc_recv.c4
-rw-r--r--src/libstddjb/ipc_send.c4
-rw-r--r--src/libstddjb/netstring_get.c3
-rw-r--r--src/libstddjb/string_unquote_withdelim.c3
-rw-r--r--src/libunixonacid/ipc_timed_send.c8
-rw-r--r--src/libunixonacid/ipc_timed_sendv.c8
-rw-r--r--src/libunixonacid/skaclient_default_cb.c3
-rw-r--r--src/libunixonacid/skaclient_server_ack.c3
-rw-r--r--src/libunixonacid/skaclient_start_cb.c3
-rw-r--r--src/libunixonacid/textclient_command.c3
-rw-r--r--src/libunixonacid/textclient_commandv.c3
-rw-r--r--src/libunixonacid/textclient_server_init_frompipe.c3
-rw-r--r--src/libunixonacid/textclient_server_init_fromsocket.c8
-rw-r--r--src/libunixonacid/textclient_start.c4
-rw-r--r--src/libunixonacid/textclient_startf.c3
-rw-r--r--src/libunixonacid/unixmessage_put.c3
-rw-r--r--src/libunixonacid/unixmessage_receive.c4
-rw-r--r--src/libunixonacid/unixmessage_sender_flush.c8
-rw-r--r--src/sysdeps/tryeproto.c9
35 files changed, 122 insertions, 91 deletions
diff --git a/src/headers/error-addrinuse b/src/headers/error-addrinuse
deleted file mode 100644
index 6f1e4fe..0000000
--- a/src/headers/error-addrinuse
+++ /dev/null
@@ -1,3 +0,0 @@
-
-/* BSD sucks */
-#define error_isalready(e) (((e) == EALREADY) || ((e) == EINPROGRESS) || ((e) == EADDRINUSE))
diff --git a/src/headers/error-already b/src/headers/error-already
deleted file mode 100644
index ac6b8a7..0000000
--- a/src/headers/error-already
+++ /dev/null
@@ -1 +0,0 @@
-#define error_isalready(e) (((e) == EALREADY) || ((e) == EINPROGRESS))
diff --git a/src/headers/error-footer b/src/headers/error-footer
deleted file mode 100644
index ddd5dae..0000000
--- a/src/headers/error-footer
+++ /dev/null
@@ -1,2 +0,0 @@
-
-#endif
diff --git a/src/headers/error-header b/src/headers/error-header
deleted file mode 100644
index f9913e5..0000000
--- a/src/headers/error-header
+++ /dev/null
@@ -1,9 +0,0 @@
-/* ISC license. */
-
-#ifndef ERROR_H
-#define ERROR_H
-
-#include <skalibs/gccattributes.h>
-
-extern int error_temp (int) gccattr_const ;
-#define error_isagain(e) (((e) == EAGAIN) || ((e) == EWOULDBLOCK))
diff --git a/src/headers/error-proto b/src/headers/error-proto
deleted file mode 100644
index fd0c01d..0000000
--- a/src/headers/error-proto
+++ /dev/null
@@ -1,3 +0,0 @@
-
-/* Did I ever mention that BSD sucks ? */
-#define EPROTO EPROTOTYPE
diff --git a/src/include/skalibs/bytestr.h b/src/include/skalibs/bytestr.h
index b20a34d..a0dc027 100644
--- a/src/include/skalibs/bytestr.h
+++ b/src/include/skalibs/bytestr.h
@@ -10,7 +10,7 @@
#include <string.h>
#include <strings.h>
-#include <skalibs/posixplz.h>
+#include <skalibs/posixishard.h>
#define byte_copy(to, n, from) memmove(to, (from), n)
#define byte_copyr(to, n, from) memmove(to, (from), n)
diff --git a/src/include/skalibs/error.h b/src/include/skalibs/error.h
new file mode 100644
index 0000000..353e879
--- /dev/null
+++ b/src/include/skalibs/error.h
@@ -0,0 +1,18 @@
+/* ISC license. */
+
+#ifndef ERROR_H
+#define ERROR_H
+
+#include <skalibs/sysdeps.h>
+#include <skalibs/gccattributes.h>
+
+extern int error_temp (int) gccattr_const ;
+#define error_isagain(e) (((e) == EAGAIN) || ((e) == EWOULDBLOCK))
+
+#ifdef SKALIBS_BSD_SUCKS
+# define error_isalready(e) (((e) == EALREADY) || ((e) == EINPROGRESS) || ((e) == EADDRINUSE))
+#else
+# define error_isalready(e) (((e) == EALREADY) || ((e) == EINPROGRESS))
+#endif
+
+#endif
diff --git a/src/include/skalibs/nonposix.h b/src/include/skalibs/nonposix.h
index 4ce165c..cf87674 100644
--- a/src/include/skalibs/nonposix.h
+++ b/src/include/skalibs/nonposix.h
@@ -35,12 +35,25 @@
#ifndef _GNU_SOURCE
#define _GNU_SOURCE
#endif
+
+
+ /* BSD and Linux libcs that are not glibc: _BSD_SOURCE opens up a
+ lot of extensions. Of course, glibc insisted on changing to a
+ different macro, because coordination and consistency would make
+ developers' life too easy. */
+
+#ifdef __GLIBC__
#ifndef _DEFAULT_SOURCE
#define _DEFAULT_SOURCE
#endif
+#else
+#ifndef _BSD_SOURCE
+#define _BSD_SOURCE
+#endif
+#endif
- /* NetBSD: of course they had to have their own macros. */
+ /* NetBSD: of course they had to have their own macro too. */
#ifndef _NETBSD_SOURCE
#define _NETBSD_SOURCE
@@ -50,22 +63,13 @@
#endif
- /* MacOS: needs this for full SUSv3 conformance. Don't ask. */
+ /* MacOS: needs this for full SUSv3 conformance. Standards are hard. */
#ifndef _DARWIN_C_SOURCE
#define _DARWIN_C_SOURCE
#endif
- /* Unfortunately we can't fully avoid #ifdef forests,
- because the BSDs are bloody snowflakes. See: setgroups(). */
-
-#undef SKALIBS_BSD_SUCKS
-#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__bsdi__) || defined(__DragonFly__)
-# define SKALIBS_BSD_SUCKS
-#endif
-
-
/* old versions of BSD and some broken GNU toolchains:
system headers are not self-contained,
starting with sys/types.h normally always works. */
diff --git a/src/include/skalibs/posixishard.h b/src/include/skalibs/posixishard.h
new file mode 100644
index 0000000..b5da077
--- /dev/null
+++ b/src/include/skalibs/posixishard.h
@@ -0,0 +1,30 @@
+/* ISC license. */
+
+#ifndef SKALIBS_POSIXISHARD_H
+#define SKALIBS_POSIXISHARD_H
+
+#include <stddef.h>
+
+#include <skalibs/gccattributes.h>
+
+ /*
+ This header must be used with some broken OSes who have
+ serious trouble implementing even easy parts of POSIX.
+ It's supposed to be included *after* system headers, so
+ it won't catch behaviour such as "this macro must be defined
+ prior to including system headers in order to define that
+ symbol". If that's what you need, include skalibs/nonposix.h
+ instead, which must happen *before* system headers.
+ */
+
+extern size_t strnlen (char const *, size_t) gccattr_pure ;
+
+#ifndef EPROTO
+#define EPROTO EPROTOTYPE
+#endif
+
+#ifndef MSG_NOSIGNAL
+#define MSG_NOSIGNAL 0
+#endif
+
+#endif
diff --git a/src/include/skalibs/posixplz.h b/src/include/skalibs/posixplz.h
index dda66ee..639a7c4 100644
--- a/src/include/skalibs/posixplz.h
+++ b/src/include/skalibs/posixplz.h
@@ -18,17 +18,6 @@ extern char **environ ;
/*
- Stuff that _is_ POSIX, but some OSes still don't have it.
- openat() et al. should be here, but they're impossible to
- emulate correctly, and I don't want an app using openat()
- to think it has safe POSIX semantics when it doesn't :/
- EPROTO et al. should be here, but ugh ifdef forests.
- */
-
-extern size_t strnlen (char const *, size_t) gccattr_pure ;
-
-
- /*
Non-POSIX functions that some OSes provide and others don't.
setgroups() isn't included because it's its own kind of broken.
*/
diff --git a/src/include/skalibs/skalibs.h b/src/include/skalibs/skalibs.h
index 2924e1c..ceaad27 100644
--- a/src/include/skalibs/skalibs.h
+++ b/src/include/skalibs/skalibs.h
@@ -4,8 +4,11 @@
#define SKALIBS_H
/*
- This header includes everything in skalibs except skalibs/config.h
- It's heavy!
+ This header is heavy! It includes everything in skalibs except:
+ - skalibs/config.h: package configuration
+ - skalibs/sysdeps.h: system-dependent feature test macros
+ - skalibs/nonposix.h: pre-system headers definitions for POSIX extensions
+ - skalibs/posixishard.h: workarounds for failures to respect POSIX
*/
#include <skalibs/posixplz.h>
diff --git a/src/include/skalibs/stddjb.h b/src/include/skalibs/stddjb.h
index aa90f6a..232b5f3 100644
--- a/src/include/skalibs/stddjb.h
+++ b/src/include/skalibs/stddjb.h
@@ -3,7 +3,6 @@
#ifndef STDDJB_H
#define STDDJB_H
-#include <skalibs/config.h>
#include <skalibs/uint16.h>
#include <skalibs/uint32.h>
#include <skalibs/uint64.h>
diff --git a/src/libposixplz/strnlen.c b/src/libposixplz/strnlen.c
index 1699771..1c4145c 100644
--- a/src/libposixplz/strnlen.c
+++ b/src/libposixplz/strnlen.c
@@ -6,7 +6,7 @@
#include <string.h>
#include <skalibs/bytestr.h>
-#include <skalibs/posixplz.h>
+#include <skalibs/posixishard.h>
size_t strnlen (char const *s, size_t max)
{
diff --git a/src/libstddjb/cdb_read.c b/src/libstddjb/cdb_read.c
index fa7b1d3..85e8dea 100644
--- a/src/libstddjb/cdb_read.c
+++ b/src/libstddjb/cdb_read.c
@@ -3,7 +3,8 @@
#include <unistd.h>
#include <string.h>
#include <errno.h>
-#include <skalibs/error.h>
+
+#include <skalibs/posixishard.h>
#include <skalibs/allreadwrite.h>
#include <skalibs/cdb.h>
diff --git a/src/libstddjb/ipc_bind.c b/src/libstddjb/ipc_bind.c
index 8686591..b3388d7 100644
--- a/src/libstddjb/ipc_bind.c
+++ b/src/libstddjb/ipc_bind.c
@@ -1,11 +1,13 @@
/* ISC license. */
#include <skalibs/nonposix.h>
+
#include <sys/socket.h>
#include <sys/un.h>
#include <string.h>
#include <errno.h>
-#include <skalibs/error.h>
+
+#include <skalibs/posixishard.h>
#include <skalibs/webipc.h>
int ipc_bind (int s, char const *p)
diff --git a/src/libstddjb/ipc_connect.c b/src/libstddjb/ipc_connect.c
index 9aa4dd9..bb0422e 100644
--- a/src/libstddjb/ipc_connect.c
+++ b/src/libstddjb/ipc_connect.c
@@ -1,11 +1,13 @@
/* ISC license. */
#include <skalibs/nonposix.h>
+
#include <errno.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <string.h>
-#include <skalibs/error.h>
+
+#include <skalibs/posixishard.h>
#include <skalibs/webipc.h>
int ipc_connect (int s, char const *p)
diff --git a/src/libstddjb/ipc_recv.c b/src/libstddjb/ipc_recv.c
index 5aa1c2b..e15e3c5 100644
--- a/src/libstddjb/ipc_recv.c
+++ b/src/libstddjb/ipc_recv.c
@@ -1,11 +1,13 @@
/* ISC license. */
#include <skalibs/nonposix.h>
+
#include <errno.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <string.h>
-#include <skalibs/error.h>
+
+#include <skalibs/posixishard.h>
#include <skalibs/webipc.h>
ssize_t ipc_recv (int fd, char *s, size_t len, char *path)
diff --git a/src/libstddjb/ipc_send.c b/src/libstddjb/ipc_send.c
index 967a64f..65826a6 100644
--- a/src/libstddjb/ipc_send.c
+++ b/src/libstddjb/ipc_send.c
@@ -1,11 +1,13 @@
/* ISC license. */
#include <skalibs/nonposix.h>
+
#include <errno.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <string.h>
-#include <skalibs/error.h>
+
+#include <skalibs/posixishard.h>
#include <skalibs/webipc.h>
ssize_t ipc_send (int fd, char const *s, size_t len, char const *path)
diff --git a/src/libstddjb/netstring_get.c b/src/libstddjb/netstring_get.c
index 9756b2e..0dfa907 100644
--- a/src/libstddjb/netstring_get.c
+++ b/src/libstddjb/netstring_get.c
@@ -1,11 +1,12 @@
/* ISC license. */
#include <errno.h>
+
+#include <skalibs/posixishard.h>
#include <skalibs/types.h>
#include <skalibs/allreadwrite.h>
#include <skalibs/bytestr.h>
#include <skalibs/buffer.h>
-#include <skalibs/error.h>
#include <skalibs/stralloc.h>
#include <skalibs/netstring.h>
diff --git a/src/libstddjb/string_unquote_withdelim.c b/src/libstddjb/string_unquote_withdelim.c
index 3ebd07d..702d3a5 100644
--- a/src/libstddjb/string_unquote_withdelim.c
+++ b/src/libstddjb/string_unquote_withdelim.c
@@ -1,7 +1,8 @@
/* ISC license. */
#include <errno.h>
-#include <skalibs/error.h>
+
+#include <skalibs/posixishard.h>
#include <skalibs/bytestr.h>
#include <skalibs/fmtscan.h>
#include <skalibs/skamisc.h>
diff --git a/src/libunixonacid/ipc_timed_send.c b/src/libunixonacid/ipc_timed_send.c
index eeae453..e1e75a4 100644
--- a/src/libunixonacid/ipc_timed_send.c
+++ b/src/libunixonacid/ipc_timed_send.c
@@ -1,17 +1,15 @@
/* ISC license. */
#include <skalibs/nonposix.h>
+
#include <sys/socket.h>
#include <errno.h>
+
+#include <skalibs/posixishard.h>
#include <skalibs/error.h>
#include <skalibs/iopause.h>
#include <skalibs/unix-timed.h>
- /* For MacOS, that still doesn't know what POSIX says */
-#ifndef MSG_NOSIGNAL
-#define MSG_NOSIGNAL 0
-#endif
-
int ipc_timed_send (int fd, char const *s, size_t len, tain_t const *deadline, tain_t *stamp)
{
iopause_fd x = { .fd = fd, .events = IOPAUSE_WRITE, .revents = 0 } ;
diff --git a/src/libunixonacid/ipc_timed_sendv.c b/src/libunixonacid/ipc_timed_sendv.c
index 220b2e3..0fe5b1e 100644
--- a/src/libunixonacid/ipc_timed_sendv.c
+++ b/src/libunixonacid/ipc_timed_sendv.c
@@ -1,18 +1,16 @@
/* ISC license. */
#include <skalibs/nonposix.h>
+
#include <sys/socket.h>
#include <errno.h>
+
+#include <skalibs/posixishard.h>
#include <skalibs/error.h>
#include <skalibs/iopause.h>
#include <skalibs/siovec.h>
#include <skalibs/unix-timed.h>
- /* For MacOS, that still doesn't know what POSIX says */
-#ifndef MSG_NOSIGNAL
-#define MSG_NOSIGNAL 0
-#endif
-
int ipc_timed_sendv (int fd, struct iovec const *v, unsigned int n, tain_t const *deadline, tain_t *stamp)
{
struct msghdr hdr =
diff --git a/src/libunixonacid/skaclient_default_cb.c b/src/libunixonacid/skaclient_default_cb.c
index 10934e5..5bf0268 100644
--- a/src/libunixonacid/skaclient_default_cb.c
+++ b/src/libunixonacid/skaclient_default_cb.c
@@ -1,7 +1,8 @@
/* ISC license. */
#include <errno.h>
-#include <skalibs/error.h>
+
+#include <skalibs/posixishard.h>
#include <skalibs/skaclient.h>
#include <skalibs/unixmessage.h>
diff --git a/src/libunixonacid/skaclient_server_ack.c b/src/libunixonacid/skaclient_server_ack.c
index 715e128..b55eb07 100644
--- a/src/libunixonacid/skaclient_server_ack.c
+++ b/src/libunixonacid/skaclient_server_ack.c
@@ -2,8 +2,9 @@
#include <errno.h>
#include <string.h>
+
+#include <skalibs/posixishard.h>
#include <skalibs/djbunix.h>
-#include <skalibs/error.h>
#include <skalibs/skaclient.h>
#include <skalibs/unixmessage.h>
#include <skalibs/webipc.h>
diff --git a/src/libunixonacid/skaclient_start_cb.c b/src/libunixonacid/skaclient_start_cb.c
index 80cb6c3..0c4ef49 100644
--- a/src/libunixonacid/skaclient_start_cb.c
+++ b/src/libunixonacid/skaclient_start_cb.c
@@ -2,7 +2,8 @@
#include <errno.h>
#include <string.h>
-#include <skalibs/error.h>
+
+#include <skalibs/posixishard.h>
#include <skalibs/unixmessage.h>
#include <skalibs/skaclient.h>
#include "skaclient-internal.h"
diff --git a/src/libunixonacid/textclient_command.c b/src/libunixonacid/textclient_command.c
index 2e72a4c..56c7122 100644
--- a/src/libunixonacid/textclient_command.c
+++ b/src/libunixonacid/textclient_command.c
@@ -2,7 +2,8 @@
#include <sys/uio.h>
#include <errno.h>
-#include <skalibs/error.h>
+
+#include <skalibs/posixishard.h>
#include <skalibs/textclient.h>
int textclient_command (textclient_t *a, char const *s, size_t len, tain_t const *deadline, tain_t *stamp)
diff --git a/src/libunixonacid/textclient_commandv.c b/src/libunixonacid/textclient_commandv.c
index 5bcd411..ec61498 100644
--- a/src/libunixonacid/textclient_commandv.c
+++ b/src/libunixonacid/textclient_commandv.c
@@ -2,7 +2,8 @@
#include <sys/uio.h>
#include <errno.h>
-#include <skalibs/error.h>
+
+#include <skalibs/posixishard.h>
#include <skalibs/textclient.h>
int textclient_commandv (textclient_t *a, struct iovec const *v, unsigned int n, tain_t const *deadline, tain_t *stamp)
diff --git a/src/libunixonacid/textclient_server_init_frompipe.c b/src/libunixonacid/textclient_server_init_frompipe.c
index fb85b44..e606eeb 100644
--- a/src/libunixonacid/textclient_server_init_frompipe.c
+++ b/src/libunixonacid/textclient_server_init_frompipe.c
@@ -4,8 +4,9 @@
#include <stdlib.h>
#include <fcntl.h>
#include <errno.h>
+
+#include <skalibs/posixishard.h>
#include <skalibs/types.h>
-#include <skalibs/error.h>
#include <skalibs/allreadwrite.h>
#include <skalibs/djbunix.h>
#include <skalibs/textmessage.h>
diff --git a/src/libunixonacid/textclient_server_init_fromsocket.c b/src/libunixonacid/textclient_server_init_fromsocket.c
index e58df2b..b7f4e84 100644
--- a/src/libunixonacid/textclient_server_init_fromsocket.c
+++ b/src/libunixonacid/textclient_server_init_fromsocket.c
@@ -1,22 +1,20 @@
/* ISC license. */
#include <skalibs/nonposix.h>
+
#include <sys/uio.h>
#include <errno.h>
#include <string.h>
#include <sys/socket.h>
+
+#include <skalibs/posixishard.h>
#include <skalibs/types.h>
-#include <skalibs/error.h>
#include <skalibs/allreadwrite.h>
#include <skalibs/djbunix.h>
#include <skalibs/unix-timed.h>
#include <skalibs/textmessage.h>
#include <skalibs/textclient.h>
-#ifndef MSG_NOSIGNAL
-#define MSG_NOSIGNAL 0
-#endif
-
union aligner_u
{
struct cmsghdr cmsghdr ;
diff --git a/src/libunixonacid/textclient_start.c b/src/libunixonacid/textclient_start.c
index 8cb7bcd..8eb8b13 100644
--- a/src/libunixonacid/textclient_start.c
+++ b/src/libunixonacid/textclient_start.c
@@ -2,11 +2,13 @@
#include <skalibs/sysdeps.h>
#include <skalibs/nonposix.h>
+
#include <sys/uio.h>
#include <string.h>
#include <errno.h>
#include <sys/socket.h>
-#include <skalibs/error.h>
+
+#include <skalibs/posixishard.h>
#include <skalibs/allreadwrite.h>
#include <skalibs/webipc.h>
#include <skalibs/djbunix.h>
diff --git a/src/libunixonacid/textclient_startf.c b/src/libunixonacid/textclient_startf.c
index 6a6f0fc..12c2b20 100644
--- a/src/libunixonacid/textclient_startf.c
+++ b/src/libunixonacid/textclient_startf.c
@@ -3,7 +3,8 @@
#include <sys/uio.h>
#include <string.h>
#include <errno.h>
-#include <skalibs/error.h>
+
+#include <skalibs/posixishard.h>
#include <skalibs/allreadwrite.h>
#include <skalibs/djbunix.h>
#include <skalibs/textmessage.h>
diff --git a/src/libunixonacid/unixmessage_put.c b/src/libunixonacid/unixmessage_put.c
index a8701ee..a2ac302 100644
--- a/src/libunixonacid/unixmessage_put.c
+++ b/src/libunixonacid/unixmessage_put.c
@@ -2,9 +2,10 @@
#include <string.h>
#include <errno.h>
+
+#include <skalibs/posixishard.h>
#include <skalibs/bitarray.h>
#include <skalibs/disize.h>
-#include <skalibs/error.h>
#include <skalibs/stralloc.h>
#include <skalibs/genalloc.h>
#include <skalibs/siovec.h>
diff --git a/src/libunixonacid/unixmessage_receive.c b/src/libunixonacid/unixmessage_receive.c
index 15d08ae..811baae 100644
--- a/src/libunixonacid/unixmessage_receive.c
+++ b/src/libunixonacid/unixmessage_receive.c
@@ -2,14 +2,16 @@
#include <skalibs/sysdeps.h>
#include <skalibs/nonposix.h>
+
#include <errno.h>
#include <sys/socket.h>
#include <sys/uio.h>
+
+#include <skalibs/posixishard.h>
#include <skalibs/uint16.h>
#include <skalibs/uint32.h>
#include <skalibs/cbuffer.h>
#include <skalibs/djbunix.h>
-#include <skalibs/error.h>
#include <skalibs/allreadwrite.h>
#include <skalibs/stralloc.h>
#include <skalibs/unixmessage.h>
diff --git a/src/libunixonacid/unixmessage_sender_flush.c b/src/libunixonacid/unixmessage_sender_flush.c
index fa1438f..3f096f0 100644
--- a/src/libunixonacid/unixmessage_sender_flush.c
+++ b/src/libunixonacid/unixmessage_sender_flush.c
@@ -1,12 +1,15 @@
/* ISC license. */
#include <skalibs/nonposix.h>
+
#include <sys/socket.h>
#include <sys/uio.h>
#include <string.h>
#include <stdint.h>
#include <unistd.h>
#include <errno.h>
+
+#include <skalibs/posixishard.h>
#include <skalibs/uint16.h>
#include <skalibs/uint32.h>
#include <skalibs/disize.h>
@@ -15,11 +18,6 @@
#include <skalibs/djbunix.h>
#include <skalibs/unixmessage.h>
- /* MacOS X tries hard to be POSIX-compliant... and fails. */
-#ifndef MSG_NOSIGNAL
-#define MSG_NOSIGNAL 0
-#endif
-
union aligner_u
{
struct cmsghdr cmsghdr ;
diff --git a/src/sysdeps/tryeproto.c b/src/sysdeps/tryeproto.c
deleted file mode 100644
index e7a0942..0000000
--- a/src/sysdeps/tryeproto.c
+++ /dev/null
@@ -1,9 +0,0 @@
-/* ISC license. */
-
-#include <errno.h>
-
-static int dummy ;
-
-#ifndef EPROTO
- syntax error !
-#endif