Except that if we can't set the IPX type we shouldn't pretend to support IPX.
If we're really going to advertise IPX support only if the system supports, then we'll have to stick to runtime probe, since `SOL_IPX` may in fact not be supported by the kernel even if IPX definitions exists in the headers.
In fact, *any* address family may or may not be supported by the underlying kernel if the support is compiled out.
So musl exposes IPX header files but not SOL_IPX or SO_DEFAULT_HEADERS (for some reason), and bionic doesn't have header files but still exposes SOL_IPX and SO_DEFAULT_HEADERS. I really wish that if these libraries are going to remove support for IPX they'd do so completely, rather than in halves.
FYI, no Linux header files seem to declare `SO_DEFAULT_HEADERS`; I couldn't find it in Linux kernel, glibc, bionic, or musl. It looks like a BSD thing.
Perhaps we should do something like v1 of 2965, and check for a different constant?