components/libxml2/patches/PTHREAD_ONCE_INIT.patch
changeset 1044 ab6b15638457
equal deleted inserted replaced
1043:585b09419d1c 1044:ab6b15638457
       
     1 From 3f6cfbd1d38d0634a2ddcb9a0a13e1b5a2195a5e Mon Sep 17 00:00:00 2001
       
     2 From: Friedrich Haubensak <[email protected]>
       
     3 Date: Wed, 12 Sep 2012 15:34:53 +0000
       
     4 Subject: Fix a thread portability problem
       
     5 
       
     6 cannot compile libxml2-2.9.0 using studio 12.1 compiler on solaris 10
       
     7 
       
     8 I.M.O. structure initializer (as PTHREAD_ONCE_INIT) cannot be used in
       
     9 a structure assignment anyway
       
    10 ---
       
    11 diff --git a/threads.c b/threads.c
       
    12 index f206149..7e85a26 100644
       
    13 --- a/threads.c
       
    14 +++ b/threads.c
       
    15 @@ -146,6 +146,7 @@ struct _xmlRMutex {
       
    16  static pthread_key_t globalkey;
       
    17  static pthread_t mainthread;
       
    18  static pthread_once_t once_control = PTHREAD_ONCE_INIT;
       
    19 +static pthread_once_t once_control_init = PTHREAD_ONCE_INIT;
       
    20  static pthread_mutex_t global_init_lock = PTHREAD_MUTEX_INITIALIZER;
       
    21  #elif defined HAVE_WIN32_THREADS
       
    22  #if defined(HAVE_COMPILER_TLS)
       
    23 @@ -915,7 +916,7 @@ xmlCleanupThreads(void)
       
    24  #ifdef HAVE_PTHREAD_H
       
    25      if ((libxml_is_threaded)  && (pthread_key_delete != NULL))
       
    26          pthread_key_delete(globalkey);
       
    27 -    once_control = PTHREAD_ONCE_INIT;
       
    28 +    once_control = once_control_init;
       
    29  #elif defined(HAVE_WIN32_THREADS) && !defined(HAVE_COMPILER_TLS) && (!defined(LIBXML_STATIC) || defined(LIBXML_STATIC_FOR_DLL))
       
    30      if (globalkey != TLS_OUT_OF_INDEXES) {
       
    31          xmlGlobalStateCleanupHelperParams *p;
       
    32 --
       
    33 cgit v0.9.0.2