diff --git a/os/generic_unix_base.h b/os/generic_unix_base.h
index b77d2adaa..049e9b63b 100644
--- a/os/generic_unix_base.h
+++ b/os/generic_unix_base.h
@@ -25,7 +25,7 @@
 #endif
 #include <sys/param.h>
 
-#if __has_include(<sys/cdefs.h>)
+#if __has_include(<sys/cdefs.h>) && (defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__GLIBC__))
 #include <sys/cdefs.h>
 #endif
 
diff --git a/tests/dispatch_test.c b/tests/dispatch_test.c
index d84a7b228..56ebab4f2 100644
--- a/tests/dispatch_test.c
+++ b/tests/dispatch_test.c
@@ -33,8 +33,8 @@
 #if __has_include(<sys/event.h>)
 #define HAS_SYS_EVENT_H 1
 #include <sys/event.h>
-#else
-#include <sys/poll.h>
+#elif __has_include(<poll.h>)
+#include <poll.h>
 #endif
 #elif defined(_WIN32)
 #include <Windows.h>