the BSD and GNU versions of this structure differ, so exposing it in
the default _BSD_SOURCE profile is possibly problematic. both versions
could be simultaneously supported with anonymous unions if needed in
the future, but for now, just omitting it except under _GNU_SOURCE
should be safe.
#define SOL_TCP 6
#include <sys/types.h>
#include <sys/socket.h>
-#include <endian.h>
+#endif
+#ifdef _GNU_SOURCE
+#include <endian.h>
struct tcphdr
{
u_int16_t source;