[oe] [meta-oe][PATCH] asio: fix musl compilation (strerror_r)

André Draszik git at andred.net
Fri Aug 26 12:09:26 UTC 2016


Cherry picked github pull request #95
  https://github.com/chriskohlhoff/asio/pull/95
  https://github.com/chriskohlhoff/asio/pull/95.patch

Signed-off-by: André Draszik <git at andred.net>
---
 meta-oe/recipes-support/asio/asio/95.patch  | 43 +++++++++++++++++++++++++++++
 meta-oe/recipes-support/asio/asio_1.10.6.bb |  2 ++
 2 files changed, 45 insertions(+)
 create mode 100644 meta-oe/recipes-support/asio/asio/95.patch

diff --git a/meta-oe/recipes-support/asio/asio/95.patch b/meta-oe/recipes-support/asio/asio/95.patch
new file mode 100644
index 0000000..a337ad3
--- /dev/null
+++ b/meta-oe/recipes-support/asio/asio/95.patch
@@ -0,0 +1,43 @@
+From 52d862c4e8af60a31f0067e1070b8625e805cdc3 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa at alpinelinux.org>
+Date: Thu, 21 Jan 2016 23:37:32 +0100
+Subject: [PATCH] Fix use of strerror_r()
+
+Don't try keep track of all platforms which follows posix standard.
+Instead, make the platform which don't follow standard to an exception
+and fall back to standard implementation for everything else.
+
+This fixes building with musl libc.
+
+Fixes #94
+---
+Upstream-Status: Backport https://github.com/chriskohlhoff/asio/pull/95
+ asio/include/asio/impl/error_code.ipp | 11 ++++-------
+ 1 file changed, 4 insertions(+), 7 deletions(-)
+
+diff --git a/asio/include/asio/impl/error_code.ipp b/asio/include/asio/impl/error_code.ipp
+index b996773..3a1cff1 100644
+--- a/asio/include/asio/impl/error_code.ipp
++++ b/asio/include/asio/impl/error_code.ipp
+@@ -98,17 +98,14 @@ public:
+ #if defined(__sun) || defined(__QNX__) || defined(__SYMBIAN32__)
+     using namespace std;
+     return strerror(value);
+-#elif defined(__MACH__) && defined(__APPLE__) \
+-  || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) \
+-  || defined(_AIX) || defined(__hpux) || defined(__osf__) \
+-  || defined(__ANDROID__)
++#elif defined(__GLIBC__) && defined(_GNU_SOURCE)
++    char buf[256] = "";
++    return strerror_r(value, buf, sizeof(buf));
++#else
+     char buf[256] = "";
+     using namespace std;
+     strerror_r(value, buf, sizeof(buf));
+     return buf;
+-#else
+-    char buf[256] = "";
+-    return strerror_r(value, buf, sizeof(buf));
+ #endif
+ #endif // defined(ASIO_WINDOWS_DESKTOP) || defined(__CYGWIN__)
+   }
diff --git a/meta-oe/recipes-support/asio/asio_1.10.6.bb b/meta-oe/recipes-support/asio/asio_1.10.6.bb
index db4ae80..2a64f1e 100644
--- a/meta-oe/recipes-support/asio/asio_1.10.6.bb
+++ b/meta-oe/recipes-support/asio/asio_1.10.6.bb
@@ -4,3 +4,5 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=fede5286a78559dd646e355ab0cc8f04"
 
 SRC_URI[md5sum] = "85d014a356a6e004cd30ccd4c9b6a5c2"
 SRC_URI[sha256sum] = "e0d71c40a7b1f6c1334008fb279e7361b32a063e020efd21e40d9d8ff037195e"
+
+SRC_URI += "file://95.patch;pnum=2"
-- 
2.9.3




More information about the Openembedded-devel mailing list