fixed use of strerror_r(3) when _GNU_SOURCE is defined.

Defining _GNU_SOURCE in glibc >= 2.0 enables a
non-standard - and slightly incompatible - GNU
extension to strerror_r(3). From the man page:

    The GNU-specific strerror_r() returns a
    pointer to a string containing the error
    message. This may be either a pointer to
    a string that the function  stores in buf,
    or a pointer to some (immutable) static
    string (in which case buf is unused).

As the Makefile for this library conditionally
defines the _GNU_SOURCE flag, the feature test
macro specified in `man 3 strerror_r` should
be used to see if it is necessary to catch
the return value.