mirror of
				https://gitlab.alpinelinux.org/alpine/aports.git
				synced 2025-11-04 10:21:36 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			43 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 52d862c4e8af60a31f0067e1070b8625e805cdc3 Mon Sep 17 00:00:00 2001
 | 
						|
From: Natanael Copa <ncopa@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
 | 
						|
---
 | 
						|
 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/include/asio/impl/error_code.ipp
 | 
						|
+++ b/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__)
 | 
						|
   }
 |