YOSHIFUJI Hideaki / 吉藤英明 <yoshfuji@xxxxxxxxxxxxxx> wrote on 06/07/2005
> No, kernel should send 5, if application use old API, of course.
Ok, but this gets back to my point. If the program source
doesn't have #ifdefs like you suggested (for example, if
it was written before the new API existed), then it'll still
have an error, but that error won't show up until the next
time it's recompiled. So, an old binary will work fine, but
recompiling it will get EINVAL on the setsockopt() calls.
The old binary will work, the old source will compile, but
the new binary will not work, and may not be found until
The two API's are fundamentally incompatible, because
they have common names that do different things, and in
the first, the boolean socket option and cmsg_type must
be the same, in the second, they cannot be.
I think it's better to break and fix any use of these
right away instead of delaying the error until the next
time some old binary is recompiled and run, don't you?