add SO_SELECT_ERR_QUEUE to socket.h introduced in linux-v3.10 commit 7d4c04fc170087119727119074e72445f2bb192b
add new socket options to sys/socket.h following linux
fix some obscure header type size/alignment issues
add missing protocol families to sys/socket.h missing protocol families based on current linux headers: PF_RDS, PF_LLC, PF_CAN, PF_TIPC, PF_NFC
socket.h: add SO_(SND/RCV)BUFFORCE to generic block
disable SO_REUSEPORT in sys/socket.h although a number is reserved for it, this option is not implemented on Linux and does not work. defining it causes some applications to use it, and subsequently break due to its failure.
fix numerous mips abi constant definition mismatches
always expose accept4 it will be in the next version of POSIX
add acct, accept4, setns, and dup3 syscalls (linux extensions) based on patch by Justin Cormack
remove all remaining redundant __restrict/__inline/_Noreturn defs
use restrict everywhere it's required by c99 and/or posix 2008 to deal with the fact that the public headers may be used with pre-c99 compilers, __restrict is used in place of restrict, and defined appropriately for any supported compiler. we also avoid the form [restrict] since older versions of gcc rejected it due to a bug in the original c99 standard, and instead use the form *restrict.
fix socket.h on mips why does mips have to be gratuitously incompatible in every possible imaginable way?
workaround another sendmsg kernel bug on 64-bit machines the kernel wrongly expects the cmsg length field to be size_t instead of socklen_t. in order to work around the issue, we have to impose a length limit and copy to a local buffer. the length limit should be more than sufficient for any real-world use; these headers are only used for passing file descriptors and permissions between processes over unix sockets.
cleanup more bits cruft (sysmacros and socket)
fix some struct padding to match LSB/glibc ABI where it may be helpful
extensive header cleanup for standards conformance & correctness thanks to Peter Mazinger (psm) for pointing many of these issues out and submitting a patch on which this commit is loosely based
initial check-in, version 0.5.0