commit:     2b24f61af9fea06bfbc34d4f8e381d00b38853cd
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 18 16:57:25 2016 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Oct 18 16:59:38 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2b24f61a

sys-libs/libomp: Backport upstream musl fix by Lei Zhang

Closes: https://github.com/gentoo/gentoo/pull/2118

 .../files/libomp-3.9.0-musl-strerror_r.patch       | 35 ++++++++++++++++++++++
 sys-libs/libomp/libomp-3.9.0.ebuild                |  2 ++
 2 files changed, 37 insertions(+)

diff --git a/sys-libs/libomp/files/libomp-3.9.0-musl-strerror_r.patch 
b/sys-libs/libomp/files/libomp-3.9.0-musl-strerror_r.patch
new file mode 100644
index 00000000..4fbf9f6
--- /dev/null
+++ b/sys-libs/libomp/files/libomp-3.9.0-musl-strerror_r.patch
@@ -0,0 +1,35 @@
+From 4fa7d5e207a4f7ef79b423b7d9658b7625795f5c Mon Sep 17 00:00:00 2001
+From: Michal Gorny <mgo...@gentoo.org>
+Date: Tue, 18 Oct 2016 16:38:44 +0000
+Subject: [PATCH] Fix a compile error on musl-libc due to strerror_r()
+ prototype
+
+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
+
+git-svn-id: https://llvm.org/svn/llvm-project/openmp/trunk@284492 
91177308-0d34-0410-b5e6-96231b3b80d8
+---
+ runtime/src/kmp_i18n.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/runtime/src/kmp_i18n.c b/runtime/src/kmp_i18n.c
+index 546e693..e008d1f 100644
+--- a/runtime/src/kmp_i18n.c
++++ b/runtime/src/kmp_i18n.c
+@@ -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.
+ 
+-- 
+2.10.1
+

diff --git a/sys-libs/libomp/libomp-3.9.0.ebuild 
b/sys-libs/libomp/libomp-3.9.0.ebuild
index ed972e8..dad6963 100644
--- a/sys-libs/libomp/libomp-3.9.0.ebuild
+++ b/sys-libs/libomp/libomp-3.9.0.ebuild
@@ -27,6 +27,8 @@ S="${WORKDIR}/${MY_P}.src"
 PATCHES=(
        # backport of https://reviews.llvm.org/D24563
        "${FILESDIR}"/${PN}-3.9.0-optional-aliases.patch
+       # backport of https://reviews.llvm.org/D25071
+       "${FILESDIR}"/${PN}-3.9.0-musl-strerror_r.patch
 )
 
 multilib_src_configure() {

Reply via email to