Fix a compile error on musl-libc due to strerror_r() prototype
authorMichal Gorny <mgorny@gentoo.org>
Tue, 18 Oct 2016 16:38:44 +0000 (16:38 +0000)
committerMichal Gorny <mgorny@gentoo.org>
Tue, 18 Oct 2016 16:38:44 +0000 (16:38 +0000)
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.

Differential Revision: https://reviews.llvm.org/D25071

llvm-svn: 284492

openmp/runtime/src/kmp_i18n.c

index 546e693..e008d1f 100644 (file)
@@ -809,7 +809,7 @@ sys_error(
                 int    strerror_r( int, char *, size_t );  // XSI version
         */
 
-        #if KMP_OS_LINUX
+        #if defined(__GLIBC__) && defined(_GNU_SOURCE)
 
             // GNU version of strerror_r.