As it seems ENOTSUP is defined as EOPNOTSUPP on Linux. The manpages says
certain functions return ENOTSUP while they return EOPNOTSUPP because
the other doesn't really exist. So we have to do some more magic,
restored the old acl errno logic which is somewhat cleaner now
that everything except for IRIX seems to not adhere to POSIX and use
EOPNOTSUPP (which is according to POSIX only valid for a socket).
Added same kind of logic to xattr code as on OSX the xattr functions
are supposed to return ENOTSUP and not EOPNOTSUPP which Linux is
returning there. What a mess trying to write portable code when manpages
just cannot be trusted. Hopefully this is the end of it.