|
|
@ -1,42 +0,0 @@ |
|
|
|
From e3e04d254fb6bac49a285775b729e28b0500476c Mon Sep 17 00:00:00 2001 |
|
|
|
From: Michael Heimpold <mhei@heimpold.de> |
|
|
|
Date: Sun, 21 Dec 2014 01:03:49 +0100 |
|
|
|
Subject: [PATCH] threads: use forward declarations only for glibc (fixes |
|
|
|
#704908) |
|
|
|
|
|
|
|
The declarations of pthread functions, used to generate weak references |
|
|
|
to them, fail to suppress macros. Thus, if any pthread function has |
|
|
|
been provided as a macro, compiling threads.c will fail. |
|
|
|
This breaks on musl libc, which defines pthread_equal as a macro (in |
|
|
|
addition to providing the function, as required). |
|
|
|
|
|
|
|
Prevent the declarations for e.g. musl libc by refining the condition. |
|
|
|
|
|
|
|
The idea for this solution was borrowed from the alpine linux guys, see |
|
|
|
http://git.alpinelinux.org/cgit/aports/tree/main/libxml2/libxml2-pthread.patch |
|
|
|
|
|
|
|
Signed-off-by: Michael Heimpold <mhei@heimpold.de> |
|
|
|
---
|
|
|
|
threads.c | 4 ++-- |
|
|
|
1 file changed, 2 insertions(+), 2 deletions(-) |
|
|
|
|
|
|
|
--- a/threads.c
|
|
|
|
+++ b/threads.c
|
|
|
|
@@ -47,7 +47,7 @@
|
|
|
|
#ifdef HAVE_PTHREAD_H |
|
|
|
|
|
|
|
static int libxml_is_threaded = -1; |
|
|
|
-#ifdef __GNUC__
|
|
|
|
+#if defined(__GNUC__) && defined(__GLIBC__)
|
|
|
|
#ifdef linux |
|
|
|
#if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || (__GNUC__ > 3) |
|
|
|
extern int pthread_once (pthread_once_t *__once_control, |
|
|
|
@@ -89,7 +89,7 @@ extern int pthread_cond_signal ()
|
|
|
|
__attribute((weak)); |
|
|
|
#endif |
|
|
|
#endif /* linux */ |
|
|
|
-#endif /* __GNUC__ */
|
|
|
|
+#endif /* defined(__GNUC__) && defined(__GLIBC__) */
|
|
|
|
#endif /* HAVE_PTHREAD_H */ |
|
|
|
|
|
|
|
/* |