mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2024-12-27 03:21:26 +03:00
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>
This commit is contained in:
parent
f54d6a929a
commit
fff8a6b87e
@ -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 */
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user