Currently we have both EOPNOTSUPP ("Operation not supported") and ENOTSUP ("Not supported") errnos. EOPNOTSUPP is historical; ENOTSUP was randomly added by POSIX relatively recently.
And lately I've noticed a tendency to conflate them, which isn't healthy. It is too late to do #define ENOTSUP EOPNOTSUPP (although we could do this as part of the mythical libc major version bump to happen Sometime(TM)) but I think we should take steps to prevent any more confusion than already exists: - do not add new uses of ENOTSUP except where specifically mandated by POSIX; - avoid creating interfaces where ENOTSUP and EOPNOTSUPP are both expected error conditions (and remove any that have crept in); - mention this in errno(2); - also add a notice to this effect somewhere it will be seen (although I have no idea where that would be); Alternatively we could try to articulate a distinction between them and adjust the messages to match; but I'm not sure this is compatible with the mandated behavior. Thoughts anyone? -- David A. Holland dholl...@netbsd.org