Source: libxml2 Version: 2.9.0+dfsg1-1 Severity: important Tags: fixed-upstream patch User: [email protected] Usertags: hurd
Hi, libxml2 2.9.0+dfsg1-1 fails to compile on GNU/Hurd[1]. The problem is that PTHREAD_ONCE_INIT is used outside a global scope, while it is usable only in global scopes. It has been already fixed upstream with 3f6cfbd[2], and indeed applying that patch makes libxml2 compile again on GNU/Hurd. Can you please backport it? (Attached.) [1] https://buildd.debian.org/status/fetch.php?pkg=libxml2&arch=hurd-i386&ver=2.9.0%2Bdfsg1-1&stamp=1348334045 [2] 3f6cfbd1d38d0634a2ddcb9a0a13e1b5a2195a5e Thanks, -- Pino
>From 3f6cfbd1d38d0634a2ddcb9a0a13e1b5a2195a5e Mon Sep 17 00:00:00 2001 From: Friedrich Haubensak <[email protected]> Date: Wed, 12 Sep 2012 17:34:53 +0200 Subject: [PATCH] Fix a thread portability problem cannot compile libxml2-2.9.0 using studio 12.1 compiler on solaris 10 I.M.O. structure initializer (as PTHREAD_ONCE_INIT) cannot be used in a structure assignment anyway --- threads.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/threads.c b/threads.c index f206149..7e85a26 100644 --- a/threads.c +++ b/threads.c @@ -146,6 +146,7 @@ struct _xmlRMutex { static pthread_key_t globalkey; static pthread_t mainthread; static pthread_once_t once_control = PTHREAD_ONCE_INIT; +static pthread_once_t once_control_init = PTHREAD_ONCE_INIT; static pthread_mutex_t global_init_lock = PTHREAD_MUTEX_INITIALIZER; #elif defined HAVE_WIN32_THREADS #if defined(HAVE_COMPILER_TLS) @@ -915,7 +916,7 @@ xmlCleanupThreads(void) #ifdef HAVE_PTHREAD_H if ((libxml_is_threaded) && (pthread_key_delete != NULL)) pthread_key_delete(globalkey); - once_control = PTHREAD_ONCE_INIT; + once_control = once_control_init; #elif defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && (!defined(LIBXML_STATIC) || defined(LIBXML_STATIC_FOR_DLL)) if (globalkey != TLS_OUT_OF_INDEXES) { xmlGlobalStateCleanupHelperParams *p; -- 1.7.10.4

