ACK,

I'm guilty of assuming that compiling with gcc on linux meant glibc
(or compatibility to glibc :-)

  Applied and pushed,

 
https://git.gnome.org/browse/libxml2/commit/?id=fff8a6b87e05200a0ad0af6f86c2e859c7de9172

  thanks!

Daniel

On Sun, Dec 21, 2014 at 01:20:28AM +0100, Michael Heimpold wrote:
> 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 <m...@heimpold.de>
> ---
>  threads.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> 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 */
>  
>  /*
> -- 
> 1.7.10.4

-- 
Daniel Veillard      | Open Source and Standards, Red Hat
veill...@redhat.com  | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | virtualization library  http://libvirt.org/
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
xml@gnome.org
https://mail.gnome.org/mailman/listinfo/xml

Reply via email to