Amazing the difference between an "and" and an "or".
diff --git a/include/busybox.h b/include/busybox.h
index 977fe33..194fd82 100644
--- a/include/busybox.h
+++ b/include/busybox.h
@@ -35,9 +35,10 @@
 #include "dmalloc.h"
 #endif
 
+#include <features.h>
 /* Stupid libc doesn't have a reliable way for use to know 
  * that libc5 is being used.   Assume this is good enough */ 
-#if ! defined __GLIBC__ || ! defined __UCLIBC__
+#if ! defined __GLIBC__ && ! defined __UCLIBC__
 /* libc5 doesn't define socklen_t */
 typedef unsigned int socklen_t;
 #endif