| Fix musl compile |
| |
| Downloaded from upstream commit |
| https://git.gnome.org/browse/libxml2/commit/?id=fff8a6b87e05200a0ad0af6f86c2e859c7de9172 |
| |
| Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> |
| --- |
| From fff8a6b87e05200a0ad0af6f86c2e859c7de9172 Mon Sep 17 00:00:00 2001 |
| From: Michael Heimpold <mhei@heimpold.de> |
| Date: Mon, 22 Dec 2014 11:12:12 +0800 |
| Subject: threads: use forward declarations only for glibc |
| |
| Fixes bug #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> |
| |
| diff --git a/threads.c b/threads.c |
| index 8921204..78006a2 100644 |
| --- 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 */ |
| |
| /* |
| -- |
| cgit v0.10.2 |
| |