Function strerror_r() has different signatures in different implementations of libc: glibc's version returns a char*, while BSDs and musl return a int. libomp unconditionally assumes glibc on Linux and thus fails to compile against musl-libc. This patch addresses this issue.
_GNU_SOURCE has to be defined for the char* version to be used (which we do by sending in -D_GNU_SOURCE during compilation). So have the #if be
#if defined(__GLIBC__) && defined(_GNU_SOURCE)