This added check is not needed IMO. Any specific reason to add it?
If HAVE_MSG_NOSIGNAL is set, MSG_NOSIGNAL *must* not be defined, if HAVE_MSG_NOSIGNAL is not set, MSG_NOSIGNAL *must not* be defined. 
If the detection went wrong, a warning/error can and should be emitted, so I don't see why add this extra clause.