12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- 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
|