Huw D M Davies wrote:
It's available on the machine that the binary is compiled on sure, but what about the machine of a friend/customer who you've shipped the binary to? Just because you have the new kernel feature on your build machine doesn't mean that everybody else does. If you test at run-time you avoid these problems.
I believe Todd's point is that the build he's compiling won't work with any libc/kernel combination older than the one he's building with *anyway*. So for NetBSD, there'll be a build built on an ancient machine, which will work pretty much everywhere and a build built on a newish machine, which will have this define. If <random-NetBSD-Box> can run Todd's binary *at all*, then it's also guaranteed to have the facility his define's checking for.