There are two possible return values for strerror_r:
On OS X, the return value is always int.
On Linux, the return value can be either char * or int, depending
on the value of:
(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE
Because OS X interceptors require a matching function signature,
split out the two cases into separate interceptors, using the above
information to determine the correct signature for a given build.